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

コード2:モードの切換処理と各モードの関数の枠
コード(KottonCastleEscapeのKCEMain.java)
1 現在のコード:現在のコードから 赤色の部分を削除 緑色の部分を切り取り(2のコードの同じ内容部分に貼り付けて移動) して下さい。

テキストアドベンチャーゲーム メインループと入出力処理
KottonCastleEscapeのKCEMain.java)12行目~
 
・・・    
012   public class KCEMain {
013  
014       //********************************************
015       //                   定数
016       //********************************************     
017    
018       //********************************************
019       //                   変数
020       //********************************************
021       private static int inputNum = 0;//入力番号
022       
023       /**
024        * @param args the command line arguments
025        */
026       public static void main(String[] args) {
027           // TODO code application logic here
028  
029           //********************************************
030           //                メイン処理
031           //********************************************
032           boolean loopFlg = true;//ループフラグ
033    
034           while (loopFlg ) {
035    
036               System.out.print(">"); //テスト用:表示確認
037  
038               //キー入力処理
039               inputNum = scanInputData();
040  
041               System.out.println("入力テスト:" + inputNum );//テスト用:表示確認
042  
043               //表示開始の区切り
044               printSeparateMark();
045           }
046  
047       }
048  
049       /**
050        * キー入力処理
051        */
052       private static int scanInputData() {
053  
054           /////////////////////////////////////////////////////
055           //キー入力処理 そのまま書き写してください ここから
056           int tmpInputNum = 0;//入力番号初期化
057           while (true) {
058               try {
059                   //初期化処理
060                   final int IMPUT_MAX = 5;//最大入力値
061                   //キー入力読込処理(int型)
062                   java.util.Scanner sc = new java.util.Scanner(System.in);
063                   int inputInt = sc.nextInt();
064                   //入力値チェックと入力番号への代入
065                   if (inputInt > 0 && inputInt <= IMPUT_MAX) {
066                       tmpInputNum = inputInt;
067                       break;
068                   } else {
069                       System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");
070                       System.out.print(">");
071                   }
072               } catch (Exception e) {
073                   System.out.println("※ 数字以外は入力しないで下さい ※ ");
074                   System.out.print(">");
075               }
076           }
077           //キー入力処理 そのまま書き写してください ここまで
078           /////////////////////////////////////////////////////
079  
080           //入力番号を返す
081           return tmpInputNum;
082       }
083  
084       /**
085        * 区切り処理
086        */
087       private static void printSeparateMark() {
088           //表示終了の区切り
089           System.out.println("");
090           System.out.println("######################################################");
091           System.out.println("");
092       }
093    
094   }
・・・    
 
 
2 今回のコード:1で修正したコードに、緑色の部分に貼り付け 黄色の部分を修正 青色の部分を追加 してこの形に下さい。

テキストアドベンチャーゲーム モードの切換処理と各モードの関数の枠
KottonCastleEscapeのKCEMain.java)12行目~
 
・・・    
012   public class KCEMain {
013  
014       //********************************************
015       //                   定数
016       //********************************************     
017       //入力・表示処理モード
018       private static final int MODE_GAME_1_ACT = 1;//行動処理モード(1階層目 どうする?行動コマンド)
019       private static final int MODE_GAME_2_TAR = 2;//対象処理モード(2階層目 なにを?対象コマンド)
020       private static final int MODE_GAME_3_RES = 3;//結果処理モード
021       //********************************************
022       //                   変数
023       //********************************************
024       private static int inputNum = 0;//入力番号
025       private static int nowMode = MODE_GAME_1_ACT;//現在の処理モード:最初は1階層目
026       
027       /**
028        * @param args the command line arguments
029        */
030       public static void main(String[] args) {
031           // TODO code application logic here
032  
033           //********************************************
034           //                メイン処理
035           //********************************************
036           boolean loopFlg = true;//ループフラグ
037    
038           while (loopFlg ) {
039  
040               /////////////////////////////////////////////////////
041               //実行処理(選択されたコマンドによって表示)
042               switch (nowMode) {
043                 
044                   //***************
045                   //行動処理モード
046                   case MODE_GAME_1_ACT:
047                      //行動処理モード関数呼び出し
048                      execModeAction();
049                       
050                       break;
051                   //***************
052                   //対象処理モード
053                   case MODE_GAME_2_TAR:
054                      //対象処理モード関数呼び出し
055                      execModeTarget();
056                      
057                      break;
058                   //***************
059                   //結果処理モード
060                   case MODE_GAME_3_RES:
061                      //結果処理モード関数呼び出し
062                      execModeResult();
063                      
064                       break;
065               }
066  
067               //キー入力処理
068               inputNum = scanInputData();
069  
070               //表示開始の区切り
071               printSeparateMark();
072           }
073  
074       }
075  
076       /**
077        * キー入力処理
078        */
079       private static int scanInputData() {
080  
081           /////////////////////////////////////////////////////
082           //キー入力処理 そのまま書き写してください ここから
083           int tmpInputNum = 0;//入力番号初期化
084           while (true) {
085               try {
086                   //初期化処理
087                   final int IMPUT_MAX = 5;//最大入力値
088                   //キー入力読込処理(int型)
089                   java.util.Scanner sc = new java.util.Scanner(System.in);
090                   int inputInt = sc.nextInt();
091                   //入力値チェックと入力番号への代入
092                   if (inputInt > 0 && inputInt <= IMPUT_MAX) {
093                       tmpInputNum = inputInt;
094                       break;
095                   } else {
096                       System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");
097                       System.out.print(">");
098                   }
099               } catch (Exception e) {
100                   System.out.println("※ 数字以外は入力しないで下さい ※ ");
101                   System.out.print(">");
102               }
103           }
104           //キー入力処理 そのまま書き写してください ここまで
105           /////////////////////////////////////////////////////
106  
107           //入力番号を返す
108           return tmpInputNum;
109       }
110  
111       /**
112        * 区切り処理
113        */
114       private static void printSeparateMark() {
115           //表示終了の区切り
116           System.out.println("");
117           System.out.println("######################################################");
118           System.out.println("");
119       }
120  
121       /**
122        * 行動処理モード
123        */
124       private static void execModeAction() {
125    
126           System.out.println("テスト:行動処理モード関数開始"); //テスト用:表示確認
127           System.out.print(">"); //テスト用:表示確認
128    
129           //対象処理モード(2階層目)に切り替える
130           nowMode = MODE_GAME_2_TAR;
131       }
132  
133       /**
134        * 対象処理モード
135        */
136       private static void execModeTarget() {
137    
138           System.out.println("テスト:対象処理モード関数開始"); //テスト用:表示確認
139           System.out.print(">"); //テスト用:表示確認
140    
141           //結果処理モード(3階層目)に切り替える
142           nowMode = MODE_GAME_3_RES;
143       }
144  
145       /**
146        * 結果処理モード
147        */
148       private static void execModeResult() {
149    
150           System.out.println("テスト:結果処理モード関数開始"); //テスト用:表示確認
151           System.out.print(">"); //テスト用:表示確認
152    
153           //行動処理モード(1階層目)に戻す
154           nowMode = MODE_GAME_1_ACT;
155       }
156    
157   }
・・・    
 
 
home

広告
  サイト内検索: