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

SESSION 13 その41
「見る」処理を作る(対象処理モード、結果処理モード) つづき
  結果処理モード:「見る」の結果表示処理

それから
結果処理モードの
「見る」処理を作りました。


関数の中に「見る」の
結果の表示処理
を作ったよ。

例えば、入口で
見る>ドア>
メッセージ:「扉です。」

って感じに、
選んだ物を見た「結果」だよ。
既に作ってある
「見る」の分岐にの中に
さらに対象(背景)の分岐を
作ったんだな。


変数 inputNumには
対象コマンドが入ってる
からね。

それで分岐させればいい。
部屋ごとに
説明するね。
よろしくねん。

 

テキストアドベンチャーゲーム
「見る」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)266行目~
 
・・・    
266      /**
267       * 結果処理モード
268       */
269      private static void execModeResult() {
270         //***** 入力された対象コマンド別に実行処理と表示をする *****
271    
272         //部屋ごとの処理
273         //***************
274         //もし入口なら
275         if (nowRoomNum == TAR_ROOM_ENTRANCE) {
276            //行動コマンド選択別処理:保存しておいた値を使用
277            //もし移動なら
278            if (keepActNum == ACT_MOVE) {
279               resultMove();//結果モード 移動表示処理
280    
281            //もし見るなら
282            } else if (keepActNum == ACT_LOOK) {
283               //選択処理表示
284               //ドア
285               if (inputNum == TAR_LOOK_ENTRANCE_DOOR) {
286                  System.out.println("L-01:扉です。");
287               }
288                  
289            //もし使うなら
290            } else if (keepActNum == ACT_USE) {
291               System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
292    
293            }
294    
295         //***************
296         //もし廊下なら
297         } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
298            //行動コマンド選択別処理:保存しておいた値を使用
299            //もし移動なら
300            if (keepActNum == ACT_MOVE) {
301               resultMove();//結果モード 移動表示処理
302    
303            //もし見るなら
304            } else if (keepActNum == ACT_LOOK) {
305                  //選択処理表示
306                  //窓
307                  if (inputNum == TAR_LOOK_PASSAGE_WINDOW) {
308                     System.out.println("L-02:窓の外は海です。");
309    
310                  //絵画
311                  } else if (inputNum == TAR_LOOK_PASSAGE_PICTURE) {
312                     System.out.println("L-03:絵です。");
313                  }
314    
315            //もし使うなら
316            } else if (keepActNum == ACT_USE) {
317               System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
318    
319            }
320    
321         //***************
322         //もし寝室なら
323         } else if (nowRoomNum == TAR_ROOM_BED) {
324            //行動コマンド選択別処理:保存しておいた値を使用
325            //もし移動なら
326            if (keepActNum == ACT_MOVE) {
327               resultMove();//結果モード 移動表示処理
328    
329            //もし見るなら
330            } else if (keepActNum == ACT_LOOK) {       
331               //選択処理表示
332               //ベッド
333               if (inputNum == TAR_LOOK_BED_BED) {
334                  System.out.println("L-04:大きなベッドです。");
335    
336               //テーブル
337               } else if (inputNum == TAR_LOOK_BED_TABLE) {
338                  System.out.println("L-05:何も無いテーブルです。");
339    
340                  tableLookCount += 1;//見るカウンタを加算
341    
342                  //見るカウントチェック
343                  if (tableLookCount == 2) {
344                     System.out.println("L-06:あ、そう言えば、・・・");
345    
346                  //3回以上見たら鍵取得
347                  } else if (tableLookCount >= 3) {
348    
349                     //鍵をまだ見つけてなければ
350                     if (!itemKeyFlg) {
351                        System.out.println("L-07:<アイテム>:金庫の鍵を手に入れました");
352    
353                         itemKeyFlg = true;//フラグを立てる
354                     }
355                  }
356    
357               //金庫
358               } else if (inputNum == TAR_LOOK_BED_SAFE) {
359                  System.out.println("L-08:開けるには暗証番号と鍵が必要です。");
360               }
361    
362            //もし使うなら
363            } else if (keepActNum == ACT_USE) {
364               System.out.println("テスト:結果処理モード 使う"); //テスト用:表示確認
365    
366            }
367         }
368    
369         //共通の処理
370         System.out.println("");
371         System.out.println("---------------------------------------------");
372         System.out.println("-- 1を入力してEnterキーを押してください ---");
373         System.out.print(">");
374      }
・・・    
結果処理モード関数の「見る」の分岐に処理を追加した

対象コマンド(背景)の分岐を作り、変数 inputNumの値で判定した


 
部屋ごとに、
どんな処理を書いたか
説明します。

作るのには、
主にシナリオの表
参考にしたよ。
 
そうだね、
結果の表示には
シナリオの表の
メッセージを使おう。
  よしよし。
 
 
 
シナリオ詳細(管理番号追加)(サンプル)
 
部屋 番号 状況
メッセージ例
行動 対象 番号 結果メッセージの例
入口 S-01 ここは入口です。 移動 全部屋共通 M-01 別の部屋に行きます。
見る ドア L-01 扉です。
使う 暗証番号1(5963) U-01 使えません。
暗証番号2(3156) - U-01と同じ
暗証番号3(3150) - U-01と同じ
金庫の鍵 U-02 ドアの鍵穴には入らない。
爆弾 U-03 爆弾でドアを吹き飛ばしました。
脱出しました。エンディングへ
廊下 S-02 ここは廊下です。 移動 全部屋共通 - M-01と同じ
見る L-02 窓の外は海です。
絵画 L-03 絵です。
使う 暗証番号1(5963) - U-01と同じ
暗証番号2(3156) - U-01と同じ
暗証番号3(3150) - U-01と同じ
金庫の鍵 U-04 ここには鍵を使うものが無い。
爆弾 U-05 爆発させても意味が無い。
寝室 S-03 ここは寝室です。 移動 全部屋共通 - M-01と同じ
見る ベッド L-04 大きなベッドです。
テーブル1回目 L-05 何も無いテーブルです。
テーブル2回目 L-06 あ、そう言えば・・・
テーブル3回目 L-07 <アイテム>:金庫の鍵を手に入れました
金庫 L-08 開けるには暗証番号と鍵が必要です。
使う 暗証番号1(鍵有り) U-06 この番号じゃない。
暗証番号2(鍵有り) U-07 <アイテム>:爆弾を手に入れました。
暗証番号3(鍵有り) U-08 この番号じゃない。
暗証番号(鍵無し) U-09 鍵を持っていないと入力しても意味がありません。
金庫の鍵 U-10 金庫の鍵はこれでOKです。
爆弾 U-11 ベッドを壊さないで下さい。
 
行動リストや対象リストの表示メッセージは省略しています

 
 

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