2つのアトラクション、1つの分岐路、そして到着する数組のパーティを含むオリジナルのテーマパークシミュレーションを作成します。架空のアルダー・ピアでは、カイトコースターが先に満員になり、ランタンカルーセルには空きがあります。分岐路にある看板により、柔軟なパーティはどちらかのキューに入る前にカルーセルへ誘導できます。
アトラクションの収容能力を一定に保ち、同じ到着スケジュールを再現します。そうすることで、どのパーティがルートを変更し、誰が搭乗し、シミュレーションが停止した時点でまだ待機していたのかが正確にわかります。
1つの分岐路と2つのアトラクションから始めます

AtariのRollerCoaster Tycoon Classic公式ページはChris Sawyerをクレジットしており、アトラクションの建設とゲストのためのパーク運営について説明しています。その広範な経営シミュレーションの前提を用いて、具体的な問いを提示しましょう:異なる到着経路は、既存のアトラクションをより効率的に活用できるでしょうか?
KiteとLanternは空のキューから開始します。各アトラクションは1ティックごとに最大2パーティを乗車させます。待機中のパーティが1つしかない場合は1つ、キューが空の場合は0つを乗車させます。このフィクスチャでは、各パーティが1つのスロットを使用します。これらの数値は実際のアトラクションの運用ではなく、ゲームのルールを説明しています。
到着ルーティングと乗車処理を分離する
8パーティが3ティックにわたって分岐点に到着します。A、E、Fは柔軟性があります。その他のすべてのパーティはKiteを希望しています。サインがオフの場合、すべての到着者をKiteに誘導します。サインがオンの場合、柔軟性のある到着者のみをLanternに誘導します。パーティがキューに参加すると、乗車するまでそのキューに留まります。
| ティック | 到着順 | 柔軟性のあるパーティ |
|---|---|---|
| 1 | A, B, C, D | A |
| 2 | E, F, G | E, F |
| 3 | H | None |

搭乗前にすべての到着を処理します。各パーティを割り当てられたキューに追加し、最も古いパーティから順に搭乗させます。誰が搭乗し、誰がまだ待機しているかを記録します。トレースにパーティIDを保持します。2つのスケジュールが同じキュー長を示しながら異なるパーティを搭乗させている場合、先着順(FIFO)のエラーが隠蔽される可能性があります。
搭乗後のキューを読む
表を同じ空の公園からの2回のリプレイのペアとして読み取ります。「待機中」とは、搭乗ステップ後にまだ行列にいる人数を意味します。搭乗直前のキューは別の読み取りです。
| ティック | サインオフ、Kiteが搭乗 | Kiteが待機中 | サインオン、Kiteが搭乗 | サインオン、Lanternが搭乗 | Kiteが待機中 |
|---|---|---|---|---|---|
| 1 | A, B | 2 | B, C | A | 1 |
| 2 | C, D | 3 | D, G | E, F | 0 |
| 3 | E, F | 2 | H | None | 0 |
Lanternはどの搭乗ステップ後も残りのキューを持っていません。サインがオフの場合、6つのパーティが搭乗し、GとHが待機します。サインがオンの場合、5つがKiteに、3つがLanternに搭乗し、待機するパーティは残りません。到着スケジュールとアトラクションごとの2スロットは決して変わりません。

クイックなデバッグチェックとして、ティック2のベースライン搭乗の直前にKiteを読み取ります。キューはC, D, E, F, Gでなければなりません。EとFが最初に搭乗する場合、新しい到着者がバックログの前に配置されています。待機として記録されているパーティが2つしかない場合、キューに入っている5つのIDと搭乗した2つのIDを比較して、欠落しているパーティを探してください。
AIに完全なパークフィクスチャを与える
単一ステップの制御と読みやすいキューログから始めます。このプロンプトは、最初のビルドに必要なデータとアサーションを提供します。
架空のブラウザパーク管理ゲーム「Alder Pier」を作成してください。
2つの初期状態が空のFIFOキューを使用します:Kite CoasterとLantern Carousel。
ティック1の前に、実行全体のための固定されたサイン設定を選択します。デフォルトはオフです。
到着順序:ティック1 A B C D;ティック2 E F G;ティック3 H。
A、E、Fは柔軟性があります。他の全員はKite Coasterを希望しています。
到着時、サインがオフの場合はすべてのパーティをKiteにルーティングします。
オンの場合、A、E、FをLanternに、他の全員をKiteにルーティングします。
到着を順序通りに追加します。パーティがキューに参加した後は、どのパーティも移動させないでください。
各ティック、すべての到着の後、各キューから最古順に最大2つまで搭乗させます。
すべての搭乗ステップ後、搭乗したIDとまだ待機しているIDを記録します。
サインオフ:KiteはAB、CD、EFを搭乗させます。Kiteの搭乗後のカウントは2、3、2です。
サインオン:KiteはBC、DG、Hを搭乗させます。LanternはA、EF、なしを搭乗させます。
サインオン:Kiteの搭乗後のカウントは1、0、0です。Lanternは常に空になります。
3ティック後に停止します。リセットはキューとログをクリアし、サインをオフにします。
ステップボタン、サイン状態、キーボード操作、オリジナルのパークアートを含めてください。
リセットから両方の設定をステップ実行してください。同じ8つのパーティが到着すること、乗車したパーティが再び出現しないこと、そしてティック3時点で全パーティが乗車済みまたは待機中であることを確認してください。プロンプト主導のワークフローについては、初回ビルドガイドを参照してください。
SEELE AI Game MakerでAlder Pierの行列を構築し、追加のパスを追加したりライドの処理能力を変更したりする前に、両方のログを確認してください。
よくある質問
最初のパークシミュレーションには何台のライドが必要ですか?
2台のライドと1つの分岐路から始めてください。1台のライドにバックログ(行列)を作り、もう1台には空き容量を持たせ、その後、ルーティングルールを1つ変更します。2台のライドがあれば、完全なマップや訪問者経済システムを必要とせずに、需要と利用可能な容量を比較できます。
キューのトレースにおける「待機(waiting)」とは何を意味しますか?
このフィクスチャでは、ライドが乗車処理を行った後に残ったパーティを指します。乗車直前の行列は別途カウントしてください。比較が常に同じ到着ステップと乗車ステップを含むように、両方の実行で同じ測定ポイントを使用してください。両方の読み取り値を表示する場合は、ラベルを明確に区別してください。
キューが到着順に乗車するかをテストするにはどうすればよいですか?
パーティIDを記録し、各ティックごとに保留中のキューと乗車済みリストを比較してください。ベースラインのティック2では、CとDが新しい到着者であるE、F、Gより先に乗車する必要があります。IDを確認することで、合計数では見逃される可能性のある順序のバグを検出できます。
サイン(標識)をテストする際に、なぜ容量を同じに保つのですか?
容量を固定にすることで、ルーティングの影響を分離できます。両方のリプレイは、同じ到着パターンとライドごとの2スロットから始まります。後で追加の座席をテストする場合は、別の実行を開始し、乗車制限のみを変更してください。これにより、各差分に明確な原因が割り当てられます。


