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

SESSION 13 その51
「使う」処理を作る(対象処理モード、結果処理モード) つづき
  「使う」処理の追加:対象処理モード

次に
対象処理モードに
「使う」処理を作りました。

対象を表示する処理は
どの部屋でも同じになった
から関数 selectUseに
まとめたよ。
自分が持ってる
アイテムは、どの部屋に
いても同じだもんな。

同じ表示にになるよね。
そんな
もんです。
そんな
もんね。
 

テキストアドベンチャーゲーム
「使う」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)192行目~
 
・・・    
192      /**
193       * 対象処理モード
194       */
195      private static void execModeTarget() {
196         //***** 入力された行動コマンドから対象コマンドを表示する *****
197    
198         //対象コマンドの一覧を表示
199         System.out.println("---------------------------------------------");
200    
201         //部屋ごとの処理
202         //***************
203         //もし入口なら
204         if (nowRoomNum == TAR_ROOM_ENTRANCE) {
205            //もし移動なら
206            if (inputNum == ACT_MOVE) {
207               selectMove();//対象モード 移動表示処理
208    
209            //もし見るなら
210             } else if (inputNum == ACT_LOOK) {
211               //全部の部屋共通の表示
212               System.out.println("何を見る?");
213               
214               //対象コマンド表示(ドア)
215               System.out.println(TAR_LOOK_ENTRANCE_DOOR + ":ドア");
216               
217            //もし使うなら
218            } else if (inputNum == ACT_USE) {
219               selectUse();//対象モード 使う表示処理
220            }
221    
222         //***************
223         //もし廊下なら
224          } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
225            //もし移動なら
226            if (inputNum == ACT_MOVE) {
227               selectMove();//対象モード 移動表示処理
228    
229            //もし見るなら
230             } else if (inputNum == ACT_LOOK) {
231               //全部の部屋共通の表示
232               System.out.println("何を見る?");
233               
234               //対象コマンド表示(窓、絵画)
235               System.out.println(TAR_LOOK_PASSAGE_WINDOW + ":窓");
236               System.out.println(TAR_LOOK_PASSAGE_PICTURE + ":絵画");
237               
238            //もし使うなら
239             } else if (inputNum == ACT_USE) {
240               selectUse();//対象モード 使う表示処理
241            }
242    
243         //***************
244         //もし寝室なら
245          } else if (nowRoomNum == TAR_ROOM_BED) {
246            //もし移動なら
247            if (inputNum == ACT_MOVE) {
248               selectMove();//対象モード 移動表示処理
249    
250            //もし見るなら
251            } else if (inputNum == ACT_LOOK) {
252               //全部の部屋共通の表示
253               System.out.println("何を見る?");
254            
255               //対象コマンド表示(ベット、テーブル、金庫)
256               System.out.println(TAR_LOOK_BED_BED + ":ベッド");
257               System.out.println(TAR_LOOK_BED_TABLE + ":テーブル");
258               System.out.println(TAR_LOOK_BED_SAFE + ":金庫");
259               
260            //もし使うなら
261            } else if (inputNum == ACT_USE) {
262               selectUse();//対象モード 使う表示処理
263            }
264    
265         }
266    
267      }
     
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
459      /**
460       * 対象処理モード 使う表示処理
461       */
462      private static void selectUse() {
463         //全部の部屋共通の表示
464         System.out.println("何を使う?");
465    
466         //暗証番号表示
467         System.out.println(TAR_USE_ITEM_CODE_5963 + ":金庫の暗証番号:5963");
468         System.out.println(TAR_USE_ITEM_CODE_3156 + ":金庫の暗証番号:3156");
469         System.out.println(TAR_USE_ITEM_CODE_3150 + ":金庫の暗証番号:3150");
470    
471         //アイテムの取得有無
472         //金庫の鍵
473         if (itemKeyFlg) {
474            System.out.println(TAR_USE_ITEM_KEY + ":金庫の鍵");
475         }
476         //爆弾
477         if (itemBomFlg) {
478            System.out.println(TAR_USE_ITEM_BOM + ":爆弾");
479         }
480         System.out.print(">");
481      }
・・・    
対象処理モード関数の「使う」の分岐に処理を追加した
共通の部分を関数化にした


うーん・・・

暗証番号が
アイテムって
やっぱり変かな・・・ 
関数 selectUseの
内容はね。


暗証番号は
アイテムにしたから、
どの部屋でも表示する
ようにしました。

他のアイテムは、
フラグがtrueだったら
表示するようにしました。
 
アイテムは、
持ってる場合だけ表示
するようにしたんだな。

持ってないのに
使えちゃおかしいもんな。

いいね。
  今回は
細かい事は
気にしないー。
 
 

テキストアドベンチャーゲーム
「使う」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)459行目~
 
・・・      
459      /**  
460       * 対象処理モード 使う表示処理  
461       */  
462      private static void selectUse() {  
463         //全部の部屋共通の表示  
464         System.out.println("何を使う?");  
465      
466         //暗証番号表示  
467         System.out.println(TAR_USE_ITEM_CODE_5963 + ":金庫の暗証番号:5963");  
468         System.out.println(TAR_USE_ITEM_CODE_3156 + ":金庫の暗証番号:3156");  
469         System.out.println(TAR_USE_ITEM_CODE_3150 + ":金庫の暗証番号:3150");  
470      
471         //アイテムの取得有無  
472         //金庫の鍵  
473         if (itemKeyFlg) { 持っている
場合は表示
474            System.out.println(TAR_USE_ITEM_KEY + ":金庫の鍵");  
475         }  
476         //爆弾  
477         if (itemBomFlg) { 持っている
場合は表示
478            System.out.println(TAR_USE_ITEM_BOM + ":爆弾");  
479         }  
480         System.out.print(">");  
481      }  
482        
・・・      
アイテムは、持っている(フラグが立っている)場合だけ表示する

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告