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

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

えーと、まず入口。
アイテムを使った結果を
作りました。


まず、暗証番号は
「使えません」でしょ。

鍵は持っている場合は
「ドアに鍵が合いません」。

それで、爆弾の場合は・・・
じゃじゃーん!
「ドアを吹き飛ばしました」。


やったあ!
これでゲームクリアだね!
エンディング
作らないと!

はやく、はやく!
どうどう!

もうちょっと
我慢ね。
ついにゲームクリアのトコまで
行ったな。

この後にエンディングが
始まるようにすればいいね。
 

テキストアドベンチャーゲーム
「使う」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)276行目~
 
・・・    
276         //部屋ごとの処理
277         //***************
278         //もし入口なら
279         if (nowRoomNum == TAR_ROOM_ENTRANCE) {
280            //行動コマンド選択別処理:保存しておいた値を使用
281            //もし移動なら
282            if (keepActNum == ACT_MOVE) {
283               resultMove();//結果モード 移動表示処理
284    
285            //もし見るなら
286            } else if (keepActNum == ACT_LOOK) {
287               //選択処理表示
288               //ドア
289               if (inputNum == TAR_LOOK_ENTRANCE_DOOR) {
290                  System.out.println("L-01:扉です。");
291               }
292                  
293            //もし使うなら
294            } else if (keepActNum == ACT_USE) {
295               //アイテム処理
296               //暗証番号
297               if (inputNum == TAR_USE_ITEM_CODE_5963
298                     || inputNum == TAR_USE_ITEM_CODE_3150
299                     || inputNum == TAR_USE_ITEM_CODE_3150) {
300                  System.out.println("U-01:使えません。");
301    
302               //鍵
303               } else if (inputNum == TAR_USE_ITEM_KEY) {
304                       System.out.println("U-02:ドアの鍵穴には入らない。");
305    
306               //爆弾
307               } else if (inputNum == TAR_USE_ITEM_BOM) {
308                       System.out.println("U-03:爆弾でドアを吹き飛ばしました。");
309                       System.out.println("脱出しました。エンディングへ");
310               }
311            }
・・・    
「入口」の「使う」の結果メッセージ表示を作った


次は、廊下でアイテムを
使った結果。

えーと、廊下で使える
アイテムは特に無いから
全部のアイテムに
使えないってメッセージを
書いたよ。
そうね、
暗証番号も、鍵も、
爆弾も使うとこないからね。

この部屋の処理は
簡単だね。


 

 

テキストアドベンチャーゲーム
「使う」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)313行目~
 
・・・    
313          //***************
314         //もし廊下なら
315         } else if (nowRoomNum == TAR_ROOM_PASSAGE) {
316            //行動コマンド選択別処理:保存しておいた値を使用
317            //もし移動なら
318            if (keepActNum == ACT_MOVE) {
319               resultMove();//結果モード 移動表示処理
320    
321            //もし見るなら
322            } else if (keepActNum == ACT_LOOK) {
323                  //選択処理表示
324                  //窓
325                  if (inputNum == TAR_LOOK_PASSAGE_WINDOW) {
326                     System.out.println("L-02:窓の外は海です。");
327    
328                  //絵画
329                  } else if (inputNum == TAR_LOOK_PASSAGE_PICTURE) {
330                     System.out.println("L-03:絵です。");
331                  }
332            //もし使うなら
333            } else if (keepActNum == ACT_USE) {
334               //行動コマンド選択別処理:保存しておいた値を使用
335               //アイテム処理
336               //暗証番号
337               if (inputNum == TAR_USE_ITEM_CODE_5963
338                     || inputNum == TAR_USE_ITEM_CODE_3150
339                     || inputNum == TAR_USE_ITEM_CODE_3150) {
340                  System.out.println("U-01:使えません。");
341    
342               //鍵
343               } else if (inputNum == TAR_USE_ITEM_KEY) {
344                       System.out.println("U-04:ここには鍵を使うものが無い。");
345    
346               //爆弾
347               } else if (inputNum == TAR_USE_ITEM_BOM) {
348                       System.out.println("U-05:爆発させても意味が無い。");
349               }
350            }
・・・    
「廊下」の「使う」の結果メッセージ表示を作った


ここが
ポイント!
最後に、寝室でアイテムを
使った場合の処理を
作りました。

えっと、この部屋で
重要な処理は暗証番号!

金庫を開けるのに
暗証番号を使うから
その結果を表示しました。

勿論、正解は「サイコロ」ね!

他のアイテムはメッセージ
だけね。
 
おおっ、いいね!

ちゃんと、
鍵を持ってないと
暗証番号を入力しても
金庫が開かないように
してあるな。
  感心、感心。
 
 

テキストアドベンチャーゲーム
「使う」処理(対象処理モード、結果処理モード)
KottonCastleEscapeのKCEMain.java)353行目~
 
・・・      
353         //***************  
354         //もし寝室なら  
355         } else if (nowRoomNum == TAR_ROOM_BED) {  
356            //行動コマンド選択別処理:保存しておいた値を使用  
357            //もし移動なら  
358            if (keepActNum == ACT_MOVE) {  
359               resultMove();//結果モード 移動表示処理  
360      
361            //もし見るなら  
362            } else if (keepActNum == ACT_LOOK) {  
363               //選択処理表示  
364               //ベッド  
365               if (inputNum == TAR_LOOK_BED_BED) {  
366                  System.out.println("L-04:大きなベッドです。");  
367      
368               //テーブル  
369               } else if (inputNum == TAR_LOOK_BED_TABLE) {  
370                  System.out.println("L-05:何も無いテーブルです。");  
371      
372                  tableLookCount += 1;//見るカウンタを加算  
373      
374                  //見るカウントチェック  
375                  if (tableLookCount == 2) {  
376                     System.out.println("L-06:あ、そう言えば、・・・");  
377      
378                  //3回以上見たら鍵取得  
379                  } else if (tableLookCount >= 3) {  
380                      tableLookCount = 3;//何回見てもこれ以上大きくさせない  
381      
382                     //鍵をまだ見つけてなければ  
383                     if (!itemKeyFlg) {  
384                        System.out.println("L-07:<アイテム>:金庫の鍵を手に入れました");  
385      
386                         itemKeyFlg = true;//フラグを立てる  
387                     }  
388                  }  
389      
390               //金庫  
391               } else if (inputNum == TAR_LOOK_BED_SAFE) {  
392                  System.out.println("L-08:開けるには暗証番号と鍵が必要です。");  
393               }  
394            //もし使うなら  
395            } else if (keepActNum == ACT_USE) {  
396               //アイテム処理  
397               //暗証番号(5963)  
398               if (inputNum == TAR_USE_ITEM_CODE_5963) {  
399                  //暗証番号:鍵を持っている場合のみ入力可能  
400                  if (itemKeyFlg) {  
401                     System.out.println("U-06:この番号じゃない。");  
402      
403                  } else {  
404                     System.out.println("U-09:鍵を持っていないと入力しても意味がありません。");  
405                  }  
406      
407               //暗証番号(3156)  
408               } else if (inputNum == TAR_USE_ITEM_CODE_3156) { 番号が
合っている
409                  //暗証番号:鍵を持っている場合のみ入力可能  
410                  if (itemKeyFlg) { 鍵を
持っている
411                     System.out.println("U-07:<アイテム>:爆弾を手に入れました");  
412      
413                     itemBomFlg = true;//爆弾アイテムフラグを立てる 爆弾を取得
414      
415                  } else {  
416                     System.out.println("U-09:鍵を持っていないと入力しても意味がありません。");  
417                  }  
418      
419               //暗証番号(3150)  
420               } else if (inputNum == TAR_USE_ITEM_CODE_3150) {  
421                  //暗証番号:鍵を持っている場合のみ入力可能  
422                  if (itemKeyFlg) {  
423                     System.out.println("U-08:この番号じゃない。");  
424      
425                  } else {  
426                     System.out.println("U-09:鍵を持っていないと入力しても意味がありません。");  
427                  }  
428      
429               //鍵  
430               } else if (inputNum == TAR_USE_ITEM_KEY) {  
431                       System.out.println("U-10:金庫の鍵はこれでOKです。");  
432      
433               //爆弾  
434               } else if (inputNum == TAR_USE_ITEM_BOM) {  
435                       System.out.println("U-11:ベッドを壊さないで下さい。");  
436               }  
437            }  
438         }  
・・・      
「寝室」の「使う」の結果メッセージ表示を作った。

鍵を持っていて 且つ 暗証番号が合っている 場合のみ 爆弾を取得できる。


これで
「使う」の処理の
説明終わります。
ほっ  
できたー。
よくがんばり
ました。
おっけー!

これで
「使う」処理が完成。

がんばったな。

これで一通りの行動が
できるようになったな。


かなり出来てきたけど。

ここまででどう?
分からないとこある?
うーん、なぽちゃんに
教えてもらって、
まだなんとなくの部分も
あるけど・・・

でも、大体大丈夫。

後で復習して、確認するね。
思い出したら
聞いてね。
はいっ。

ありがと。



さすがに
疲れただろ。
そうだな、
一気にやったから
疲れただろ。

ここらで休憩とるか。
 
ありがと。

でも、後はオープニングと
エンディングだけでしょ。

あと少しだから、
このまま作りたい!

プログラム完成させよう!
ね、お願い。
  一気に
作っちゃおう!

ね!
 



うーん・・・ま、いいか。

お前がそう言うなら
区切りがいいし
このままやっちゃおう。

次は、オープニングと
エンディングの作成だ。
ほんと元気ねー。


実はまだ残ってる
んだけどね。。。
ごーごー!
やったー!
ありがとう、なぽちゃん!


一気に作っちゃおー!
 

課題一覧
テキストアドベンチャーゲーム作成の流れ
 
目的 課題
動くプログラムを作る
1、メインループと入出力処理を作る
2、各モードの関数の枠とモードの切換処理を作る
3、行動処理モードを作る
4、対象処理モードを作る(「移動」処理のみ)
5、結果処理モードを作る(「移動」処理のみ)
その他の処理を作る
6、「見る」処理を作る(対象処理モード、結果処理モード)
7、「使う」処理を作る(対象処理モード、結果処理モード)
8、オープニング、エンディングを作る
9、エラー処理を作る
10、シナリオを追加する
 
仕様書を元に課題を解いて下さい
各課題は、出題 ヒント 解答 の流れになります

 
 

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