メンバ変数(フィールド) |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
コードもかなり整理されたな。
最後に、モード別処理も
関数にしてしまおう。
問題処理モードと
解答処理モード。
2つの関数ね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
えー、みんな
関数にしちゃうの?
その2つって
今回のゲームの処理の
ほとんど全部だよ。
メイン関数
からっぽになっちゃうよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
そう、
からっぽにしよう!
お前の頭と同じね。 |
 |
|
 |
あたしは
蟹みそぐらい
つまってる!! |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
その方が処理の流れが
すっきりして分かりやすい
だろ。
とことん
やっちゃおーぜ!
いえーい! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
いえーい |
|
いえーい |
 |
|
|
|
蟹みそ
ってちょこっと
しかない
じゃん。。。
だから
ノリやすいんだ。
ククク |
 |
|
 |
あっ!
じゃなくってー!
それぐらい
Goodってこと! |
|
|
でも
蟹みそって
美味しいよね!
魚介類のみそとか肝
って美味しいよねー。 |
 |
|
 |
ふうん。
そうなんだ。 |
|
|
|
じゅるる |
魚介類のって・・・
美味しい・・・
よね・・・? |

|
|
ひいいー |
|
 |
捕食者の
目で
見ないでー。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、早速コードを
移動させてみよう。
まずは解答処理モードね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
問題処理モードが
先じゃないんだ・・・?
えっと・・・
さっきやったように
関数にすれば
いいんだよね。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
解答から先ね。
ウフ |
 |
|
 |
簡単だから
どっちでも
いいけど。 |
|
|
|
 |
|
 |
|
クイズゲーム完成 キー入力処理関数化
(KotoQuizのKQMain.java)90行目~ |
|
・・・ |
|
|
|
090 |
|
//解答処理モード |
|
091 |
|
}else
if(execMode == EXEC_MODE_CHECK){ |
|
092 |
|
|
|
093 |
|
//解答をチェックする |
|
094 |
|
switch(nowQuizNum){ |
|
095 |
|
case
0: |
|
096 |
|
//正解番号チェック |
|
097 |
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
098 |
|
|
|
099 |
|
break; |
|
100 |
|
case
1: |
|
101 |
|
//正解番号チェック |
|
102 |
|
correctTotal
= checkAnswerData(1,inputNum,correctTotal); |
|
103 |
|
|
|
104 |
|
break; |
|
105 |
|
case
2: |
|
106 |
|
//正解番号チェック |
|
107 |
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
108 |
|
|
|
109 |
|
break; |
|
110 |
|
} |
|
111 |
|
System.out.println(""); |
|
112 |
|
System.out.println("-----------------------------------------------"); |
|
113 |
|
System.out.print("<
1を入力してEnterキーを押してください >"); |
|
114 |
|
|
|
115 |
|
//問題を進める |
|
116 |
|
nowQuizNum
+= 1; |
|
117 |
|
|
|
118 |
|
//最大数以上なら |
|
119 |
|
if(nowQuizNum
>= QUIZ_MAX){ |
|
120 |
|
loopFlg
= false;//ゲームを終了する |
|
121 |
|
} |
|
122 |
|
|
|
123 |
|
//問題処理モードへ変更 |
|
124 |
|
execMode
= EXEC_MODE_QUIZ; |
|
125 |
|
} |
|
・・・ |
|
|
|
|
緑色の 解答処理モード
の部分を関数化します |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そうだな。
関数名は
execModeCheck
にしてくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
はいっ。
まずは、
関数の枠を書いて。
処理をカットして
この中に移動・・・っと。
これはばっちり! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
ウフ
ウフ |
 |
|
 |
簡単! |
|
|
|
 |
|
 |
|
クイズゲーム完成 モード処理関数化
(KotoQuizのKQMain.java) |
|
・・・ |
|
|
|
|
|
/** |
|
|
|
* 解答処理モード処理 |
|
|
|
*/ |
|
|
|
private
static void execModeCheck(){ |
|
|
|
|
|
|
|
//解答をチェックする |
|
|
|
switch(nowQuizNum){ |
|
|
|
case
0: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
case
1: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(1,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
case
2: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
} |
|
|
|
System.out.println(""); |
|
|
|
System.out.println("-----------------------------------------------"); |
|
|
|
System.out.print("<
1を入力してEnterキーを押してください >"); |
|
|
|
|
|
|
|
//問題を進める |
|
|
|
nowQuizNum
+= 1; |
|
|
|
|
|
|
|
//最大数以上なら |
|
|
|
if(nowQuizNum
>= QUIZ_MAX){ |
|
|
|
loopFlg
= false;//ゲームを終了する |
|
|
|
} |
|
|
|
|
|
|
|
//問題処理モードへ変更 |
|
|
|
execMode
= EXEC_MODE_QUIZ; |
|
|
|
|
|
|
|
} |
|
・・・ |
|
|
|
|
関数 execModeCheckのブロック
を作り、
その中に 解答処理モードの処理 を貼り付けた。 |
|
まだコードを改変しないで下さい。 |
|
|
 |
|
 |
|
|
|
きゃああああ |
壊しちゃった! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
って!
ばっちりじゃないー!!
真っ赤かだー!
いきなり、エラーだらけに
なっちゃったあー!! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
壊しちゃった! |
|
|
|
 |
エディタウィンドウ |
|
|
ごめんなさいー! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
もうだめだあー!
めちゃくちゃだああー
こんなの直せないよー! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
最悪、戻せば
いいんだし。
ククク
ほんと
疲れる子ねー。 |
|
|
|
 |
へこんでる時
じゃない! |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
こういう時は、まずは
エラー内容の確認ね。
エディタ上の赤線の
エラーメッセージを
見てみよう。
カーソルをエラーの
上に置いてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
カーソルを赤線の上に
置いたら・・・
「シンボルを
見つけられません」
て出たよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それは「変数が宣言されて
いません」というエラーだ。
じゃあ、どうしてそのエラーに
なったんだと思う?
問題処理モードの内容を
確認してみよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
確認してー |
|
|
|
 |
エディタウィンドウ |
|
赤線のエラーの上にカーソルを置くとエラーの内容が表示されます。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
「変数が宣言されてない」って、
解答チェック処理を
関数にした時と同じだよね?
ってことは・・・やっぱり!
メイン関数の中で宣言された
変数ばっかりだ!
今度は定数まで宣言されてないよ!
関数にしたら大変!
ほとんど全部引数にしないと!
名前も全部書き換えなきゃ! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
たいへん! |
 |
|
 |
たいへん! |
|
|
|
 |
|
 |
|
クイズゲーム完成 モード処理関数化
(KotoQuizのKQMain.java) |
|
・・・ |
|
|
|
|
|
/** |
|
|
|
* 解答処理モード処理 |
|
|
|
*/ |
|
|
|
private
static void execModeCheck(){ |
|
|
|
|
|
|
|
//解答をチェックする |
|
|
|
switch(nowQuizNum){ |
|
|
|
case
0: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
case
1: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(1,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
case
2: |
|
|
|
//正解番号チェック |
|
|
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
|
|
|
|
|
|
break; |
|
|
|
} |
|
|
|
System.out.println(""); |
|
|
|
System.out.println("-----------------------------------------------"); |
|
|
|
System.out.print("<
1を入力してEnterキーを押してください >"); |
|
|
|
|
|
|
|
//問題を進める |
|
|
|
nowQuizNum
+= 1; |
|
|
|
|
|
|
|
//最大数以上なら |
|
|
|
if(nowQuizNum
>= QUIZ_MAX){ |
|
|
|
loopFlg
= false;//ゲームを終了する |
|
|
|
} |
|
|
|
|
|
|
|
//問題処理モードへ変更 |
|
|
|
execMode
= EXEC_MODE_QUIZ; |
|
|
|
|
|
|
|
} |
|
・・・ |
|
|
|
|
変数も定数もメイン関数側で宣言されている |
|
|
 |
|
 |
|
|
むりー!!! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
それに、戻り値にできるのは
1つだけだよ!
なのに、
問題番号も!
正解数も!
処理モードも!
ループフラグも!
全部メイン関数に戻さないと
関数が終わったら
変えた値が消えちゃうよ! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
むりじゃないー
からかうのも
疲れてきたなあ。 |
|
|