広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English

コード5:クイズゲーム完成 正解処理関数化
コード(KotoQuizTestのKQMain.java)
1 現在のコード:現在のコードから 赤色の部分を削除 緑色の部分を切り取り(2のコードの同じ内容部分に貼り付けて移動) して下さい。

クイズゲーム 完成(モード別処理)
(KotoQuizTestのKQMain.java)17行目~
 
・・・      
017     public static void main(String[] args) {
018       // TODO code application logic here  
019    
020           //********************************************  
021           // 定数  
022           //********************************************  
023           //入力・表示処理モード  
024           final int EXEC_MODE_QUIZ = 1;//問題処理モード  
025           final int EXEC_MODE_CHECK = 2;//解答処理モード  
026           final int QUIZ_MAX = 3;//問題数  
027      
028           //********************************************  
029           // 変数  
030           //********************************************  
031           boolean loopFlg = true;//ループフラグ  
032           int inputNum = 0;//入力番号  
033           int execMode = EXEC_MODE_QUIZ;//処理モード(問題処理モードで開始)  
034      
035           int nowQuizNum = 0;//現在出題番号  
036           int correctTotal = 0;//正解数  
037      
038           //********************************************  
039           // メイン処理  
040         //********************************************
041           while (loopFlg) {  
042      
043               /////////////////////////////////////////////////////  
044               //実行と描画処理  
050      
051               //問題処理モード  
052             if(execMode == EXEC_MODE_QUIZ){
053      
054                   //見出し:現在の状況を表示する  
055                   System.out.println("***************** ことくいず *****************");  
056                   System.out.println("         現在、"+ (nowQuizNum + 1) +"問目です。");  
057                   System.out.println("        現在の正解数は"+ correctTotal +"です。");  
058                   System.out.println("***********************************************");  
059                   System.out.println("");  
060                   System.out.println("< 問題です >");  
061      
062                   //問題を表示する  
063                   switch(nowQuizNum){  
064                       case 0:  
065                           System.out.println("変数の型でint型の最大値はいくつ?");  
066                           System.out.println("");  
067                           System.out.println("-----------------------------------------------");  
068                           System.out.println("1:256 2:98776342 3:2147483647");  
069      
070                           break;  
071                       case 1:  
072                           System.out.println("変数の型を変換するのに使う方法はどれ?");  
073                           System.out.println("");  
074                           System.out.println("-----------------------------------------------");  
075                           System.out.println("1:キャスト 2:スコープ 3:インクリメント");  
076      
077                           break;  
078                       case 2:  
079                           System.out.println("変数aが「4以上でかつ10以下」か「40未満」");  
080                           System.out.println("正しい条件式はどれ?");  
081                           System.out.println("");  
082                           System.out.println("-----------------------------------------------");  
083                           System.out.println("1:(a >= 4 || a < 10) && a < 40");  
084                           System.out.println("2:(a >= 4 || a <= 10) || a < 40");  
085                           System.out.println("3:(a >= 4 && a <= 10) || a < 40");  
086      
087                           break;  
088                   }  
089                   System.out.print("答え>");  
090      
091                   //解答処理モードへ変更  
092                   execMode = EXEC_MODE_CHECK;  
093      
094               //解答処理モード  
095               }else if(execMode == EXEC_MODE_CHECK){  
096      
097                   //解答をチェックする  
098                   switch(nowQuizNum){  
099                       case 0:  
100                           //正解番号チェック  
101                           if(inputNum == 3){  
102                               System.out.println("やったね!正解");  
103                               correctTotal += 1;//正解数加算  
104                           }else{  
105                               System.out.println("残念!不正解");  
106                           }  
107      
108                           break;  
109                       case 1:  
110                           //正解番号チェック  
111                           if(inputNum == 1){  
112                               System.out.println("やったね!正解");  
113                               correctTotal += 1;//正解数加算  
114                           }else{  
115                               System.out.println("残念!不正解");  
116                           }  
117      
118                           break;  
119                       case 2:  
120                           //正解番号チェック  
121                           if(inputNum == 3){  
122                               System.out.println("やったね!正解");  
123                               correctTotal += 1;//正解数加算  
124                           }else{  
125                               System.out.println("残念!不正解");  
126                           }  
127      
128                           break;  
129                   }  
130                   System.out.println("");  
131                   System.out.println("-----------------------------------------------");  
132                   System.out.print("< 1を入力してEnterキーを押してください >");  
133      
134                   //問題を進める  
135                   nowQuizNum += 1;  
136      
137                   //最大数以上なら  
138                   if(nowQuizNum >= QUIZ_MAX){  
139                       loopFlg = false;//ゲームを終了する  
140                   }  
141      
142                   //問題処理モードへ変更  
143                   execMode = EXEC_MODE_QUIZ;  
144               }  
145      
146               /////////////////////////////////////////////////////  
147               //キー入力処理 そのまま書き写してください ここから  
148               int tmpInputNum = 0;//入力番号初期化  
149               try {  
150                   //初期化処理  
151                   final int IMPUT_MAX = 3;//最大入力値  
152                   //キー入力読込処理(int型)  
153                   java.util.Scanner sc = new java.util.Scanner(System.in);  
154                   int inputInt = sc.nextInt();  
155                   //入力値チェックと入力番号への代入  
156                   if (inputInt > 0 && inputInt <= IMPUT_MAX) {  
157                       tmpInputNum = inputInt;  
158                   } else {  
159                       System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");  
160                   }  
161               } catch (Exception e) {  
162                   System.out.println("※ 数字以外は入力しないで下さい ※ ");  
163               }  
164               //キー入力処理 そのまま書き写してください ここまで  
165               /////////////////////////////////////////////////////  
166      
167               //入力番号を受け取る  
168               inputNum = tmpInputNum;  
045      
046               //表示終了の区切り  
047               System.out.println("");  
048               System.out.println("######################################################");  
049               System.out.println("");  
169           }  
170      
171           //結果表示  
173           System.out.println("***************** ことくいず *****************");  
174           System.out.println("");  
175           System.out.println("      あなたの正解数は "+ correctTotal +" でした。");  
176           System.out.println("");  
177           System.out.println("***********************************************");  
178           System.out.println("");  
179           System.out.println("おしまい");  
180       }  
・・・    
 
 
2 今回のコード:1で修正したコードに、緑色の部分に貼り付け 黄色の部分を修正 青色の部分を追加 してこの形にして下さい。

クイズゲーム完成 正解処理関数化
(KotoQuizTestのKQMain.java)12行目~
 
・・・      
012   public class KQMain {  
013      
014     /**
015       * @param args the command line arguments  
016       */  
017     public static void main(String[] args) {
018       // TODO code application logic here  
019    
020           //********************************************  
021           // 定数  
022           //********************************************  
023           //入力・表示処理モード  
024           final int EXEC_MODE_QUIZ = 1;//問題処理モード  
025           final int EXEC_MODE_CHECK = 2;//解答処理モード  
026           final int QUIZ_MAX = 3;//問題数  
027      
028           //********************************************  
029           // 変数  
030           //********************************************  
031           boolean loopFlg = true;//ループフラグ  
032           int inputNum = 0;//入力番号  
033           int execMode = EXEC_MODE_QUIZ;//処理モード(問題処理モードで開始)  
034      
035           int nowQuizNum = 0;//現在出題番号  
036           int correctTotal = 0;//正解数  
037      
038           //********************************************  
039           // メイン処理  
040         //********************************************
041           while (loopFlg) {  
042      
043               /////////////////////////////////////////////////////  
044               //実行と描画処理  
045      
046               //問題処理モード  
047             if(execMode == EXEC_MODE_QUIZ){
048      
049                   //見出し:現在の状況を表示する  
050                   System.out.println("***************** ことくいず *****************");  
051                   System.out.println("         現在、"+ (nowQuizNum + 1) +"問目です。");  
052                   System.out.println("        現在の正解数は"+ correctTotal +"です。");  
053                   System.out.println("***********************************************");  
054                   System.out.println("");  
055                   System.out.println("< 問題です >");  
056      
057                   //問題を表示する  
058                   switch(nowQuizNum){  
059                       case 0:  
060                           System.out.println("変数の型でint型の最大値はいくつ?");  
061                           System.out.println("");  
062                           System.out.println("-----------------------------------------------");  
063                           System.out.println("1:256 2:98776342 3:2147483647");  
064      
065                           break;  
066                       case 1:  
067                           System.out.println("変数の型を変換するのに使う方法はどれ?");  
068                           System.out.println("");  
069                           System.out.println("-----------------------------------------------");  
070                           System.out.println("1:キャスト 2:スコープ 3:インクリメント");  
071      
072                           break;  
073                       case 2:  
074                           System.out.println("変数aが「4以上でかつ10以下」か「40未満」");  
075                           System.out.println("正しい条件式はどれ?");  
076                           System.out.println("");  
077                           System.out.println("-----------------------------------------------");  
078                           System.out.println("1:(a >= 4 || a < 10) && a < 40");  
079                           System.out.println("2:(a >= 4 || a <= 10) || a < 40");  
080                           System.out.println("3:(a >= 4 && a <= 10) || a < 40");  
081      
082                           break;  
083                   }  
084      
085                   System.out.print("答え>");  
086      
087                   //解答処理モードへ変更  
088                   execMode = EXEC_MODE_CHECK;  
089      
090               //解答処理モード  
091               }else if(execMode == EXEC_MODE_CHECK){  
092      
093                   //解答をチェックする  
094                   switch(nowQuizNum){  
095                       case 0:  
096                           //正解番号チェック  
097                           if(inputNum == 3){  
098                               correctTotal = printCorrect(correctTotal);//正解処理  
099                           }else{  
100                               System.out.println("残念!不正解");  
101                           }  
102      
103                           break;  
104                       case 1:  
105                           //正解番号チェック  
106                           if(inputNum == 1){  
107                               correctTotal = printCorrect(correctTotal);//正解処理  
108                           }else{  
109                               System.out.println("残念!不正解");  
110                           }  
111      
112                           break;  
113                       case 2:  
114                           //正解番号チェック  
115                           if(inputNum == 3){  
116                               correctTotal = printCorrect(correctTotal);//正解処理  
117                           }else{  
118                               System.out.println("残念!不正解");  
119                           }  
120      
121                           break;  
122                   }  
123                   System.out.println("");  
124                   System.out.println("-----------------------------------------------");  
125                   System.out.print("< 1を入力してEnterキーを押してください >");  
126      
127                   //問題を進める  
128                   nowQuizNum += 1;  
129      
130                   //最大数以上なら  
131                   if(nowQuizNum >= QUIZ_MAX){  
132                       loopFlg = false;//ゲームを終了する  
133                   }  
134      
135                   //問題処理モードへ変更  
136                   execMode = EXEC_MODE_QUIZ;  
137               }  
138      
139               /////////////////////////////////////////////////////  
140               //キー入力処理 そのまま書き写してください ここから  
141               int tmpInputNum = 0;//入力番号初期化  
142               try {  
143                   //初期化処理  
144                   final int IMPUT_MAX = 3;//最大入力値  
145                   //キー入力読込処理(int型)  
146                   java.util.Scanner sc = new java.util.Scanner(System.in);  
147                   int inputInt = sc.nextInt();  
148                   //入力値チェックと入力番号への代入  
149                   if (inputInt > 0 && inputInt <= IMPUT_MAX) {  
150                       tmpInputNum = inputInt;  
151                   } else {  
152                       System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");  
153                   }  
154               } catch (Exception e) {  
155                   System.out.println("※ 数字以外は入力しないで下さい ※ ");  
156               }  
157               //キー入力処理 そのまま書き写してください ここまで  
158               /////////////////////////////////////////////////////  
159      
160               //入力番号を受け取る  
161               inputNum = tmpInputNum;  
162      
163               //表示終了の区切り  
164               System.out.println("");  
165               System.out.println("######################################################");  
166               System.out.println("");  
167           }  
168      
169           //結果表示  
170           System.out.println("***************** ことくいず *****************");  
171           System.out.println("");  
172           System.out.println("      あなたの正解数は "+ correctTotal +" でした。");  
173           System.out.println("");  
174           System.out.println("***********************************************");  
175           System.out.println("");  
176           System.out.println("おしまい");  
177       }  
178      
179       //関数:正解処理関数  
180       private static int printCorrect(int seikaiGoukei){  
181      
182           System.out.println("やったね!正解");  
183           seikaiGoukei += 1;//正解数加算  
184      
185           //結果を返す  
186           return seikaiGoukei;  
187       }  
188      
189   }  
・・・    
 
 
コードの解説図
クイズゲーム 完成(正解処理関数化)解説図
 
home

広告
  サイト内検索: