プログラムの構造 つづき |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
さてと。
後は作った仕様を、仕様書に
まとめればいいんだけど。
その前に、今回は
このプログラムの構造を
もう少し詳細に作っておこう。
ここからは
俺がやるから聞いてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なるほど、
もっと細かく作るんだ。
って、どう言うこと? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
仕様書に
まとめるのは
その後ね。 |
 |
|
 |
何を
するの? |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今回詳しく考えるのは
各モードの出力処理の部分だ。
クイズゲームの時の出力処理は、
問題や答えを表示するだけだったけど
今回のゲームはちょっと複雑だ。
現在いる部屋や選んだコマンドによって
表示する内容が全然違う。
・部屋の状況を表示したり
・見る物を表示したり
・使う物を表示したり
だから、各モードの表示処理の部分を、
もっと詳細に作っておくよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
ちょっと
複雑なの。 |
 |
|
 |
なるほど。 |
|
|
|
|
 |
|
 |
|
|
処理の構造の詳細(出力処理) |
|
|
 |
|
出力処理を詳細に考える |
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、モード別に
出力処理を詳しく作ってみよう。
ちょっと見ると難しそうに
見えるけど落ち着いてみれば
簡単だから。
説明するから一緒に見てね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
じっくり見てね。 |
 |
|
 |
落ち着いて。
深呼吸ね。 |
|
|
|
「出力」の
部分だけ
詳細ね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
まずは行動処理モードだ。
このモードの出力処理は
自分のいる部屋によって
表示する内容が違う。
こんな感じだな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
|
出力の詳細(行動処理モード) |
|
|
[出力] 部屋の状況と行動リストの表示 |
「現在の部屋」>「状況メッセージ」と「行動リスト」を表示
現在の部屋 |
表示メッセージ(行動リスト) |
入口 |
ここは入口です。
どうする?
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 |
開きません。 |
|
暗証番号(鍵なし) |
開きません。 |
|
金庫の鍵
(所持の場合) |
使いました。 |
|
爆弾(所持の場合) |
使えません。 |
|
|
|
|
処理の項目は「行動する」の処理に当たる、実際にゲームを進める処理。
今回はメッセージ表示と同時に実行する。 |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、開発の時の
「ヒント」を言うとね。
お前の言う通り、これは
メッセージの「分岐」だからね。
制御文でメッセージの表示を
分岐させればいいんだよ。
詳しい事は開発の時にね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか。
制御文でメッセージを
選べばいいんだね。
やり方は
よく分かんないけど。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
分岐に
よく気付いたね。 |
 |
|
 |
てへへ
また
褒められた。 |
|
|
やったー!
なぽちゃんに
褒められたー!
あたし、すごい!
分岐に気付いたよ!
いえーい! |
 |
|
 |
もおー
すぐ調子に
のるんだから・・・ |
|
|