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

SESSION 12 その52
プログラムの構造 つづき
  プログラムの構造の詳細(出力処理)

さてと。

後は作った仕様を、仕様書に
まとめればいいんだけど。

その前に、今回は
このプログラムの構造を
もう少し詳細に作っておこう。

ここからは
俺がやるから聞いてね。
なるほど、
もっと細かく作るんだ。

って、どう言うこと?
仕様書に
まとめるのは
その後ね。

何を
するの?


今回詳しく考えるのは
各モードの出力処理の部分だ。

クイズゲームの時の出力処理は、
問題や答えを表示するだけだったけど
今回のゲームはちょっと複雑だ。

現在いる部屋や選んだコマンドによって
表示する内容が全然違う。


・部屋の状況を表示したり
・見る物を表示したり
・使う物を表示したり

だから、各モードの表示処理の部分を、
もっと詳細に作っておくよ。
ちょっと
複雑なの。

なるほど。
 
 
処理の構造の詳細(出力処理)
テキストアドベンチャーゲームの処理の構造(機能単位)出力処理の詳細
 
出力処理を詳細に考える


じゃあ、モード別に
出力処理を詳しく作ってみよう。


ちょっと見ると難しそうに
見えるけど落ち着いてみれば
簡単だから。

説明するから一緒に見てね。

はいっ。

じっくり見てね。

落ち着いて。

深呼吸ね。

  行動処理モードの出力処理

「出力」の
部分だけ
詳細ね。
まずは行動処理モードだ。

このモードの出力処理は
自分のいる部屋によって
表示する内容が違う。

こんな感じだな。
 
 
 
出力処理(行動処理モード)
行動処理モードの出力処理
 
 
 
出力の詳細(行動処理モード)
 
[出力] 部屋の状況と行動リストの表示
「現在の部屋」>「状況メッセージ」と「行動リスト」を表示
現在の部屋 表示メッセージ(行動リスト)
入口 ここは入口です。

どうする?
1:移動 2:見る 3:使う
廊下 ここは廊下です。

どうする?
1:移動 2:見る 3:使う
寝室 ここは寝室です。

どうする?
1:移動 2:見る 3:使う
 
行動リストの表示はどの部屋も同じ。
 
部屋によって状況が
違うからメッセージが
違うんだね。

行動リストは
どの部屋も同じなんだ。
  「出力」の
部分だけね。
 

  対象処理モードの出力処理

次は対象処理モード
ここは行動コマンドを
選んだ状態だね。

今度の出力は、
部屋ごとに、
さらに選んだ行動によって
表示する選択肢が変わる。

選んだコマンドによって
メッセージが変わるからね。
そっか、
見るを選んだら・・・

「入口」で「見る」だと
「ドア」があるから。

選んだコマンドで
表示が分岐するんだ。
「分岐」。
いいこと言うね。

えっ、
そうなの?
 
 
出力処理(対象処理モード)
対象処理モードの出力処理
 
 
 
出力の詳細(対象処理モード)
 
[出力] 対象リストの表示
「現在の部屋」>「選ばれた行動コマンド」>「対象リスト」を表示
現在の部屋 行動 表示メッセージ(対象リスト)
入口 移動 どこに?

1:入口 2:廊下 3:寝室
見る どこを?

1:ドア
使う なにを?

1:暗証番号1
2:暗証番号2
3:暗証番号3
4:金庫の鍵(所持の場合)
5:爆弾(所持の場合)
廊下 移動 どこに?

1:入口 2:廊下 3:寝室
見る どこを?

1:窓 2:絵画
使う なにを?

1:暗証番号1
2:暗証番号2
3:暗証番号3
4:金庫の鍵(所持の場合)
5:爆弾(所持の場合)
寝室 移動 どこに?

1:入口 2:廊下 3:寝室
見る どこを?

1:ベッド 2:テーブル 3:金庫
使う なにを?

1:暗証番号1
2:暗証番号2
3:暗証番号3
4:金庫の鍵(所持の場合)
5:爆弾(所持の場合)
 
部屋別に、行動コマンドのメッセージが必要
 
 
表示メッセージの変化例
 
[出力] 対象リストの表示
「現在の部屋」>「選ばれた行動コマンド」>「対象リスト」を表示
現在の部屋 行動 表示メッセージ(対象リスト)
入口 移動 どこに?

1:入口 2:廊下 3:寝室
見る どこを?

1:ドア
使う なにを?

1:暗証番号1
2:暗証番号2
3:暗証番号3
4:金庫の鍵(所持の場合)
5:爆弾(所持の場合)
・・・ ・・・ ・・・
 
「現在の部屋」と「選んだ行動コマンド」によって表示メッセージが変化する。

  結果処理モードの出力処理


最後に、結果処理モード

ここの出力は部屋ごとと
選んだ行動の上に
選んだ対象によって
表示が変わる。

・現在の部屋
・行動コマンド
・対象コマンド

3つの選択でメッセージが
決まるんだ。
そうこれも
「分岐」ね。

「分岐」と
言えば・・・?

制御文だ!
わあー、
凄い分岐になるね!
 
 
出力処理(結果処理モード)
結果処理モードの出力処理
 
 
 
出力の詳細(結果処理モード)
 
[出力] 行動の結果を表示
「現在の部屋」>「選ばれた行動コマンド」>「選ばれた対象コマンド」>「結果メッセージ」を表示
現在の部屋 行動 対象 表示メッセージ(結果) 処理
入口 移動 全部屋共通 移動します。 移動
処理
見る ドア ドアです。  
使う 暗証番号1 使えません。  
暗証番号2 使えません。  
暗証番号3 使えません。  
金庫の鍵
(所持の場合)
使えません。  
爆弾(所持の場合) ドアを破壊しました。 終了
処理
廊下 移動 全部屋共通 移動します。 移動
処理
見る 窓です。  
絵画 絵です。  
使う 暗証番号1 使えません。  
暗証番号2 使えません。  
暗証番号3 使えません。  
金庫の鍵
(所持の場合)
使えません。  
爆弾(所持の場合) 使えません。  
寝室 移動 全部屋共通 移動します。 移動
処理
見る ベッド ベッドです。  
テーブル1回目 テーブルです。  
テーブル2回目 テーブルです。  
テーブル3回目 鍵を見つけました。 取得
処理
金庫 金庫です。  
使う 暗証番号1 開きません。  
暗証番号2 金庫が開きました。 取得
処理
暗証番号3 開きません。  
暗証番号(鍵なし) 開きません。  
金庫の鍵
(所持の場合)
使いました。  
爆弾(所持の場合) 使えません。  
 


それから、
表の「処理」の項目
処理の流れ図で言うと
「行動する」
の処理内容だよ。

つまり、
メッセージ表示と同時に行う
処理ね。

例えば、
行動が「移動」なら「移動します。」
って表示と同時に
「部屋を移動する処理」をする。

クイズで「正解!」の表示と同時に
「正解数の加算」をしたのと同じね。
分かった!

アイテムを取ったら
「アイテムを取りました。」
って表示して、取得処理。

アイテムフラグを立てる
んだね!
開発の時
ヒントになるよ。

わーい。

ありがと。
 
 
出力の詳細(結果処理モード)
 
[出力] 行動の結果を表示
「現在の部屋」>「選ばれた行動コマンド」>「選ばれた対象コマンド」>
「結果メッセージ」を表示
現在の部屋 行動 対象 表示メッセージ(結果) 処理
入口 移動 全部屋共通 移動します。 移動
処理
見る ドア ドアです。  
使う 暗証番号1 使えません。  
暗証番号2 使えません。  
暗証番号3 使えません。  
金庫の鍵
(所持の場合)
使えません。  
爆弾(所持の場合) ドアを破壊しました。 終了
処理
廊下 移動 全部屋共通 移動します。 移動
処理
見る 窓です。  
絵画 絵です。  
使う 暗証番号1 使えません。  
暗証番号2 使えません。  
暗証番号3 使えません。  
金庫の鍵
(所持の場合)
使えません。  
爆弾(所持の場合) 使えません。  
寝室 移動 全部屋共通 移動します。 移動
処理
見る ベッド ベッドです。  
テーブル1回目 テーブルです。  
テーブル2回目 テーブルです。  
テーブル3回目 鍵を見つけました。 取得
処理
金庫 金庫です。  
使う 暗証番号1 開きません。  
暗証番号2 金庫が開きました。 取得
処理
暗証番号3 開きません。  
暗証番号(鍵なし) 開きません。  
金庫の鍵
(所持の場合)
使いました。  
爆弾(所持の場合) 使えません。  
 
処理の項目は「行動する」の処理に当たる、実際にゲームを進める処理。

今回はメッセージ表示と同時に実行する。


それから、開発の時の
「ヒント」を言うとね。


お前の言う通り、これは
メッセージの「分岐」だからね。

制御文でメッセージの表示を
分岐させればいいんだよ。


詳しい事は開発の時にね。
そっか。

制御文でメッセージを
選べばいいんだね。

やり方は
よく分かんないけど。
分岐に
よく気付いたね。

てへへ

また
褒められた。


やったー!
なぽちゃんに
褒められたー!

あたし、すごい!
分岐に気付いたよ!

いえーい!

もおー

すぐ調子に
のるんだから・・・

 
 

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