問題表示処理 つづき |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、
追加したコードを
上から順番に見ていこう。
解説図も一緒に見てね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
|
 |
|
今回のコードのポイント |
|
|
・初期化処理(定数・変数の追加) |
・見出し表示処理 |
・問題表示処理 |
・解答入力処理 |
・終了処理 |
・正解数表示処理 |
|
|
|
|
 |
|
 |
|
|
コードの解説図(画像をクリックで拡大表示します) |
|
|
|
 |
|
 |
|
クイズゲーム 問題表示処理追加
(KotoQuizのKQMain.java)20行目~ |
|
・・・ |
|
|
|
020 |
|
//******************************************** |
|
021 |
|
//
定数 |
|
022 |
|
//******************************************** |
|
023 |
|
final
int QUIZ_MAX = 3;//問題数 |
|
024 |
|
|
|
025 |
|
//******************************************** |
|
026 |
|
//
変数 |
|
027 |
|
//******************************************** |
|
028 |
|
boolean
loopFlg = true;//ループフラグ |
|
029 |
|
int
inputNum = 0;//入力番号 |
|
030 |
|
|
|
031 |
|
int
nowQuizNum = 0;//現在出題番号 |
|
032 |
|
int
correctTotal = 0;//正解数 |
|
・・・ |
|
|
|
|
黄色の部分は今回追加した変数・定数 |
|
解説図
番号1を参照して下さい |
|
|
 |
|
 |
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
最初に、追加した変数
を見ておこう。
初期化処理に
定数 QUIZ_MAXと
変数 nowQuizNum
と correctTotal 。
合計3つ追加したよ。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
nowQuizNumが
現在の出題番号で
correctTotal が正解数。
両方とも最初は0ね。
ゲーム全体で使うから
先頭に書いたんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
定数 QUIZ_MAXは
出題する問題数を表す値だ。
今は3問だから3ね。
この定数は終了判定で
使ってるよ。
これは
実際に出題する問題数と
同じ数にする必要がある。
問題を追加したら、
ここも変更してくれ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
どういう風に
使ってるかは
この後見るよ。 |
|
|
|
|
|
 |
|
 |
|
クイズゲーム 問題表示処理追加
(KotoQuizのKQMain.java)42行目~ |
|
・・・ |
|
|
|
042 |
|
//見出し:現在の状況を表示する |
|
043 |
|
System.out.println("***************** ことくいず *****************"); |
|
044 |
|
System.out.println(" 現在、"+
(nowQuizNum + 1) +"問目です。"); |
|
045 |
|
System.out.println(" 現在の正解数は"+
correctTotal +"です。"); |
|
046 |
|
System.out.println("***********************************************"); |
|
047 |
|
System.out.println(""); |
|
048 |
|
System.out.println("< 問題です >"); |
|
・・・ |
|
|
|
|
解説図
番号3を参照して下さい |
|
|
 |
|
 |
|
|
|
 |
分かり
やすいよね。 |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
次に、見出し処理を追加したよ。
問題の上に、
現在の出題番号と正解数を
表示させてるんだ。
簡単だけど、こういうのがあると
それっぽくなるだろ。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
クイズゲーム 問題表示処理追加
(KotoQuizのKQMain.java)50行目~ |
|
・・・ |
|
|
|
050 |
|
//問題を表示する |
|
051 |
|
switch(nowQuizNum){ |
|
052 |
|
case
0: |
|
053 |
|
System.out.println("変数の型でint型の最大値はいくつ?"); |
|
054 |
|
System.out.println(""); |
|
055 |
|
System.out.println("-----------------------------------------------"); |
|
056 |
|
System.out.println("1:256 2:98776342 3:2147483647"); |
|
057 |
|
|
|
058 |
|
break; |
|
059 |
|
case
1: |
|
060 |
|
System.out.println("変数の型を変換するのに使う方法はどれ?"); |
|
061 |
|
System.out.println(""); |
|
062 |
|
System.out.println("-----------------------------------------------"); |
|
063 |
|
System.out.println("1:キャスト 2:スコープ 3:インクリメント"); |
|
064 |
|
|
|
065 |
|
break; |
|
066 |
|
case
2: |
|
067 |
|
System.out.println("変数aが「4以上でかつ10以下」か「40未満」"); |
|
068 |
|
System.out.println("正しい条件式はどれ?"); |
|
069 |
|
System.out.println(""); |
|
070 |
|
System.out.println("-----------------------------------------------"); |
|
071 |
|
System.out.println("1:(a
>= 4 || a < 10) && a < 40"); |
|
072 |
|
System.out.println("2:(a
>= 4 || a <= 10) || a < 40"); |
|
073 |
|
System.out.println("3:(a
>= 4 && a <= 10) || a < 40"); |
|
074 |
|
|
|
075 |
|
break; |
|
076 |
|
} |
|
077 |
|
System.out.print("答え>"); |
|
・・・ |
|
|
|
|
解説図
番号4を参照して下さい |
|
|
 |
|
 |
|
|
そうそう、
いくらでも
増やせるよ。
別に難しく
ないだろ。 |
 |
|
 |
はいっ。
大丈夫です。 |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、問題表示処理。
これが今回の追加のメインだな。
今回は1問づつクイズを進める
形式だからね。
現在の出題番号nowQuizNumで
switch文の表示を切り替えて
1問だけ出題させてるんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか、
1問目は0番なんだね。
ここに問題を追加すれば
どんどんを増やせるんだ! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ちなみに、
「答え>」を表示する所は、
改行しない表示命令
print() を使ってるのに
注目してね。
場所に応じて使い分けよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なるほど。
println() を使うと、改行されて
カーソルが次の行に行っちゃう
んだ。
入力すると
答え>
2
ってなっちゃうんだね。
答え>2
の方がかっこいいね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
こっちの方が
よくね? |
 |
|
 |
いいかも! |
|
|
|
 |
|
 |
|
クイズゲーム 問題表示処理追加
(KotoQuizのKQMain.java)77行目~ |
|
・・・ |
|
|
|
077 |
|
System.out.print("答え>"); |
|
・・・ |
|
|
|
|
改行しない表示命令 print()
を使っている。 |
「答え>」の横に入力のカーソルを表示するため
改行しないようにした。 |
|
|
|
 |
|
 |
|
|
|
 |
|
 |
|
クイズゲーム 問題表示処理追加
(KotoQuizのKQMain.java)87行目~ |
|
・・・ |
|
|
|
087 |
|
///////////////////////////////////////////////////// |
|
088 |
|
//キー入力処理 そのまま書き写してください ここから |
|
089 |
|
int
tmpInputNum = 0;//入力番号初期化 |
|
090 |
|
try
{ |
|
091 |
|
//初期化処理 |
|
092 |
|
final
int IMPUT_MAX = 3;//最大入力値 |
|
093 |
|
//キー入力読込処理(int型) |
|
094 |
|
java.util.Scanner
sc = new java.util.Scanner(System.in); |
|
095 |
|
int
inputInt = sc.nextInt(); |
|
096 |
|
//入力値チェックと入力番号への代入 |
|
097 |
|
if
(inputInt > 0 && inputInt <= IMPUT_MAX) { |
|
098 |
|
tmpInputNum
= inputInt; |
|
099 |
|
}
else { |
|
100 |
|
System.out.println("※ コマンドは"
+ IMPUT_MAX + "以下で入力して下さい ※ "); |
|
101 |
|
} |
|
102 |
|
}
catch (Exception e) { |
|
103 |
|
System.out.println("※ 数字以外は入力しないで下さい ※ "); |
|
104 |
|
} |
|
105 |
|
//キー入力処理 そのまま書き写してください ここまで |
|
106 |
|
///////////////////////////////////////////////////// |
|
107 |
|
|
|
108 |
|
//入力番号を受け取る |
|
109 |
|
inputNum
= tmpInputNum; |
|
・・・ |
|
|
|
|
解説図
番号6、7を参照して下さい |
|
|
 |
|
 |
|
|
説明
飛ばすよ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
解答入力処理には、
さっきテストした入出力処理を
そのまま使う。
ここでユーザーにキーボードから
解答番号を入力してもらうんだ。
入力値はinputNumに入るよ。
ブラックボックス扱いだから
これ以上の説明ナシね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ユーザーからの
入力を止まって
待ってるんだよね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
入力されるの
ずーっと
待ってるんだ・・・
けなげだね。 |
|
|
|