次のシステムを設計する方法について頭を悩ませようとしています。これは、有限状態マシンとして定義できると思います。
城を形成する 16 個のビルディング ブロック (塔、壁、ゲート) の山があるとします。プレーヤーは、ブロックをフロアプランの 16 か所にドラッグできます。正しく行うと、城全体が表示されます。すべての塔 (4 つある) は同じなので、4 つの角のどこにでも行くことができます。一部の壁についても同様です。
全体として、フロアプランにはビルディング ブロックを配置できる 16 のスポットがあり、各スポットには 17 の「状態」があります: 空 + 16 のビルディング ブロックのいずれか 1 つ。いくつかの計算を行うと、これは 17^16=たくさんの組み合わせにつながります。
プログラムは、空のフロアプランとビルディング ブロックの山から始まります。次に、「自分の城を建てて、塔から始めましょう」のようなメッセージが表示されます。ユーザーがタワーを正しく配置すると、「よくできました。今度は 4 つのタワーをすべて構築します」と表示されます。あなたはアイデアを得る。
問題は、プレイヤーができることが非常に多いことです。ブロックを間違った場所に置いたり、ブロックを取り除いたり、与えられた指示を無視してフロアプラン全体に壁や塔を正しく配置したりします。
何千もの if-then ステートメントを使用して、次のステップに進むか、エラー メッセージを表示するか、プレーヤーの動作に基づいて前のステップに戻るかを決定する必要がないようにできれば、素晴らしいことです。
構築シーケンスの各ステップの NEXT、PREVIOUS、および ERROR 条件をどのように説明しますか? このための設計方法はありますか?ご意見をお寄せいただきありがとうございます。