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

SESSION 13 その23
対象処理モードを作る(移動処理のみ) つづき
  解答

はいっ、
対象処理モード、
できました。


あー、難しかったけど
なんとかできたよ。

なぽちゃん、どうかな?
うん、うん。OK!

コードは
いい感じだね。
いろいろ
ありがと。
どーいたまして。
 
コード5:対象処理モード(移動処理のみ)
コードをリンク先から参照して下さい


  動作テスト

じゃあ、
実行してみよう。

・・・うん、いいね。
どの部屋でも行き先を
表示できてる。

「移動」の全部のルート
OKだね。
あと少しでプログラムが
動くようになるね!

そうなったら
止めないでいいから
テストもしやすくなるね。
もうちょっと
辛抱ね
はいっ。
 
実行結果(出力ウィンドウ)対象処理モード1 
 
実行結果(出力ウィンドウ)対象処理モード2 
実行結果(出力ウィンドウ)対象処理モード3 
実行結果(出力ウィンドウ)

  解説


解答:対象処理モードを作る(移動処理のみ)
 
・対象リストを表示(部屋別行動コマンド別)
・対象コマンドの入力処理

 
作ったのはね、
うーんと・・・
 
今回作った内容は
こんな感じです。


対象処理モード関数に
対象処理モードの
移動処理を作りました。

作った内容は
仕様書の画面構成の
対象画面と同じです。
 
今回は作るのを
「移動」に絞るからね。

対象処理モードの
1部分ができたって
感じだね。
 

  対象リストを表示(部屋別行動コマンド別)

最初に、
対象リストを
表示する処理

作りました。
 
 
これができれば
対象を選べるように
なるな。

大分進んできたね。
 

対象処理モード(対象リストの表示処理)
 

2、対象選択画面
(対象リスト表示、対象コマンド入力)
######################################

何を見る? 選択指示の表示

---------------------------
1:ドア 2:鏡 3:その他
対象リスト表示

番号を選んでください> 2 対象コマンド入力

内容(処理)
選択指示の表示
対象リストの表示
対象コマンド
入力依頼



今はまだ
移動だけしか
ないけど。
処理の内容は・・・

・全ての出力の分岐の作成
・行動コマンドの表示処理
(「移動」のみ)

こんな感じで作ったよ。

今回は「移動」の場合だから、
表示するのは「部屋名」ね。
 
おお、いいね。

まずは「移動」
できるようにしような。

どんな流れで
作ったの?
  どういう風に
考えた?
 
 

テキストアドベンチャーゲーム
対象処理モード(移動処理のみ)
KottonCastleEscapeのKCEMain.java)141行目~
 
・・・    
141      /**
142       * 対象処理モード
143       */
144      private static void execModeTarget() {
145         //***** 入力された行動コマンドから対象コマンドを表示する *****
146    
147         //対象コマンドの一覧を表示
148         System.out.println("---------------------------------------------");
149    
150         //部屋ごとの処理
151         //***************
152         //もし入口なら
153          if (nowRoomNum == TAR_ROOM_ENTRANCE) {
154            //もし移動なら
155             if (inputNum == ACT_MOVE) {
156               selectMove();//対象モード 移動表示処理
157    
158            //もし見るなら
159            } else if (inputNum == ACT_LOOK) {
160               System.out.println("テスト:対象処理モード 見る"); //テスト用:表示確認
161               
162            //もし使うなら
163            } else if (inputNum == ACT_USE) {
164               System.out.println("テスト:対象処理モード 使う"); //テスト用:表示確認
165    
166            }
167    
168         //***************
169         //もし廊下なら
170         } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
171            //もし移動なら
172             if (inputNum == ACT_MOVE) {
173               selectMove();//対象モード 移動表示処理
174    
175            //もし見るなら
176            } else if (inputNum == ACT_LOOK) {
177               System.out.println("テスト:対象処理モード 見る"); //テスト用:表示確認
178               
179            //もし使うなら
180            } else if (inputNum == ACT_USE) {
181               System.out.println("テスト:対象処理モード 使う"); //テスト用:表示確認
182    
183            }
184    
185         //***************
186         //もし寝室なら
187         } else if (nowRoomNum == TAR_ROOM_BED) {
188            //もし移動なら
189            if (inputNum == ACT_MOVE) {
190               selectMove();//対象モード 移動表示処理
191    
192            //もし見るなら
193            } else if (inputNum == ACT_LOOK) {
194               System.out.println("テスト:対象処理モード 見る"); //テスト用:表示確認
195               
196            //もし使うなら
197            } else if (inputNum == ACT_USE) {
198               System.out.println("テスト:対象処理モード 使う"); //テスト用:表示確認
199    
200            }
201         }
202         //対象コマンド共通の表示
203         System.out.print(">");
・・・      }
部屋別、行動別に分岐するメッセージ表示処理を作った
 

テキストアドベンチャーゲーム
対象処理モード(移動処理のみ)
KottonCastleEscapeのKCEMain.java)244行目~
 
・・・    
244      /**
245       * 対象処理モード 移動表示処理
246       */
247      private static void selectMove() {
248         //対象コマンド移動先表示
249         System.out.println("どの部屋に移動する?");
250         System.out.println(TAR_ROOM_ENTRANCE + ":入口");
251         System.out.println(TAR_ROOM_PASSAGE + ":廊下");
252         System.out.println(TAR_ROOM_BED + ":寝室");
253      }
・・・    
「移動」の対象リスト(移動先の部屋)を表示する処理を作った

  対象コマンドの入力

最後に
対象コマンドの
入力処理

考えました。
最後の
説明です。
 
ここで行動の対象を
選んでもらうんだよな。

今回の場合、
「移動」だけだから、
移動先の部屋選びだね。
 

対象処理モード(対象コマンドの選択処理)


ここで対象コマンドを
入力してもらって、
inputNumの値を、次の
結果処理モードに渡します。

それを使えば多分・・・
「結果」を出せるよね?
そうだね。

inputNumに入った
コマンド値は
次の結果処理モードで
使えるね。
 


対象コマンドの入力には
既に作ってある
キー入力処理を使います。

なので、ここでは
何も作ってないです。
入力処理は
全モード共通ってことで。
同じの
使います。
同じの
使おう。

 
 

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