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

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

テキストアドベンチャーゲーム モードの切換処理と各モードの関数の枠
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階層目)に切り替える 切り取り1
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階層目)に切り替える 切り取り2
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階層目)に戻す 切り取り3
154           nowMode = MODE_GAME_1_ACT;  
155       }  
156      
157   }  
・・・      
 
 
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                      //対象処理モード(2階層目)に切り替える 貼り付け1
051                      nowMode = MODE_GAME_2_TAR;  
052      
053                       break;  
054                   //***************  
055                   //対象処理モード  
056                   case MODE_GAME_2_TAR:  
057                      //対象処理モード関数呼び出し  
058                      execModeTarget();  
059      
060                      //結果処理モード(3階層目)に切り替える 貼り付け2
061                      nowMode = MODE_GAME_3_RES;  
062                        
063                      break;  
064                   //***************  
065                   //結果処理モード  
066                   case MODE_GAME_3_RES:  
067                      //結果処理モード関数呼び出し  
068                      execModeResult();  
069                        
070                      //行動処理モード(1階層目)に戻す 貼り付け3
071                      nowMode = MODE_GAME_1_ACT;  
072      
073                       break;  
074               }  
075    
076               //キー入力処理  
077               inputNum = scanInputData();  
078    
079               //表示開始の区切り  
080               printSeparateMark();  
081           }  
082    
083       }  
084    
085       /**  
086        * キー入力処理  
087        */  
088       private static int scanInputData() {  
089    
090           /////////////////////////////////////////////////////  
091           //キー入力処理 そのまま書き写してください ここから  
092           int tmpInputNum = 0;//入力番号初期化  
093           while (true) {  
094               try {  
095                   //初期化処理  
096                   final int IMPUT_MAX = 5;//最大入力値  
097                   //キー入力読込処理(int型)  
098                   java.util.Scanner sc = new java.util.Scanner(System.in);  
099                   int inputInt = sc.nextInt();  
100                   //入力値チェックと入力番号への代入  
101                   if (inputInt > 0 && inputInt <= IMPUT_MAX) {  
102                       tmpInputNum = inputInt;  
103                       break;  
104                   } else {  
105                       System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");  
106                       System.out.print(">");  
107                   }  
108               } catch (Exception e) {  
109                   System.out.println("※ 数字以外は入力しないで下さい ※ ");  
110                   System.out.print(">");  
111               }  
112           }  
113           //キー入力処理 そのまま書き写してください ここまで  
114           /////////////////////////////////////////////////////  
115    
116           //入力番号を返す  
117           return tmpInputNum;  
118       }  
119    
120       /**  
121        * 区切り処理  
122        */  
123       private static void printSeparateMark() {  
124           //表示終了の区切り  
125           System.out.println("");  
126           System.out.println("######################################################");  
127           System.out.println("");  
128       }  
129    
130       /**  
131        * 行動処理モード  
132        */  
133       private static void execModeAction() {  
134      
135           System.out.println("テスト:行動処理モード関数開始"); //テスト用:表示確認  
136           System.out.print(">"); //テスト用:表示確認  
137      
138       }  
139    
140       /**  
141        * 対象処理モード  
142        */  
143       private static void execModeTarget() {  
144      
145           System.out.println("テスト:対象処理モード関数開始"); //テスト用:表示確認  
146           System.out.print(">"); //テスト用:表示確認  
147      
148       }  
149    
150       /**  
151        * 結果処理モード  
152        */  
153       private static void execModeResult() {  
154      
155           System.out.println("テスト:結果処理モード関数開始"); //テスト用:表示確認  
156           System.out.print(">"); //テスト用:表示確認  
157      
158       }  
159      
160   }  
・・・      
 
 
home

広告
  サイト内検索: