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

SESSION 13 その17
行動処理モードを作る つづき
  解答

はいっ、できました!

見て、なぽちゃん!
行動処理モードを
作ったよ。


どうかな?
おー、できたか。
うーんと・・・

ざっと見た感じいいと思うよ。

今回は動作テストは
最後にするからね。

解説よろしく。
できました!

テストは
まだだけど。
うん、
いいんじゃね。
 
コード4:行動処理モードを作る
コードをリンク先から参照して下さい

  解説


解答:行動処理モードを作る
 
・変数と定数の追加
・部屋の状況の表示(部屋ごとの処理)
・行動リストの表示と入力マークの表示
・行動コマンドの入力

 
うーんとね・・・
 
はいっ。
作った内容はこんな
感じです。


行動処理モードの
関数の中に・・・

仕様書の画面構成から
行動画面の内容と
同じに作りました。

 
まず現在いる部屋の
状況を表示。

次に、
行動コマンドの一覧を
表示したのね。

うん、いいんじゃね。
 

  変数と定数の追加

変数と定数の宣言に
・行動コマンド
・移動用の対象コマンド
の定数を追加しました。


今回は移動処理だから
対象コマンドは各部屋です。

あと、現在自分がいる部屋番号を
保持する変数 nowRoomNum
を宣言しました。
ドアの部屋の定数で初期化
しました。
ゲームは最初は
入口の部屋から始める
ことにしたんだな。

うん、定数も足りてるし
いいね。
おっけ?
おっけ。
 

テキストアドベンチャーゲーム
行動処理モード
KottonCastleEscapeのKCEMain.java)14行目~
 
・・・    
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       private static final int ACT_NONE = 0;//無し
023       private static final int ACT_MOVE = 1;//移動
024       private static final int ACT_LOOK = 2;//見る
025       private static final int ACT_USE = 3;//使う
026       //対象コマンド 移動用 部屋の現在地
027       private static final int TAR_ROOM_ENTRANCE = 1;//入口
028       private static final int TAR_ROOM_PASSAGE = 2;//廊下
029       private static final int TAR_ROOM_BED = 3;//寝室
030       //********************************************
031       //                   変数
032       //********************************************
033       private static int inputNum = 0;//入力番号
034       private static int nowMode = MODE_GAME_1_ACT;//現在の処理モード:最初は1階層目
035       private static int nowRoomNum = TAR_ROOM_ENTRANCE;//現在位置:ドアの部屋から開始
・・・    
行動コマンドと対象コマンド(部屋)の定数を追加。
現在の部屋番号を保持する変数を追加。


それから、
行動コマンドには、
定数 ACT_NONE
なぽちゃんの
指示で追加したよ。
ACT_NONEは
後で使うから
今は気にしないでね。
おっけ?
これも
おっけ。

  部屋の状況の表示(部屋ごとの処理)

 
次に、
「部屋の状況の表示処理」と
「行動リスト表示」。

まずは、部屋の状況の
表示処理を作りました。
 
まずは部屋の状況が
分からないとね。
   
 
 

行動処理モード(状況と行動リストの表示処理)
 

1、行動画面
(状況表示、行動リスト表示、行動コマンド入力)
######################################


現在の部屋:入口

部屋には頑丈なドアがある。
でも、鍵が掛かってて開かないわ。

あとは・・・
大きな鏡があるわ。
状況表示


---------------------------
1:移動 2:見る 3:使う
行動リスト表示

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

内容(処理)
部屋の状況の表示
行動リストの表示
行動コマンド
入力依頼



処理は、
部屋ごとに表示内容を作って
if文で現在の部屋を選んで
表示するようにしました。

表示するメッセージは
シナリオ表のサンプルを
写したよ。
まずは
自分のいる
部屋の状況ね。
おっけ。
うん、いいね。

これで、
自分が今どこにいるか
分かるようになったな。


ちゃんとシナリオも
省略形にしてあるし。
 

テキストアドベンチャーゲーム
行動処理モード
KottonCastleEscapeのKCEMain.java)141行目~
 
・・・    
141       /**
142        * 行動処理モード
143        */
144       private static void execModeAction() {
145           //***** 部屋の状況と行動のコマンドを表示する *****
146  
147           //部屋の状況を表示(部屋ごとの処理)
148           //もし入口なら
149           if (nowRoomNum == TAR_ROOM_ENTRANCE) {
150               System.out.println("S-01:ここは入口です。");
151  
152           //もし廊下なら
153           } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
154               System.out.println("S-02:ここは廊下です。");
155  
156           //もし寝室なら
157           } else if (nowRoomNum == TAR_ROOM_BED) {
158               System.out.println("S-03:ここは寝室です。");
159           }
160  
161           //行動コマンドの一覧を表示
162           System.out.println("");
163           System.out.println("---------------------------------------------");
164           System.out.println("どうする?");
165           System.out.println("1:移動 2:見る 3:使う");
166           System.out.print(">");
167       }
・・・    
if文で部屋の分岐を作った

 
 

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