問題タブ [adventure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
73 参照

javascript - テキストアドベンチャーのバックパックの中身

現在、テキストアドベンチャーを作成中です。あるアイテムを持っていると、ゲーム内のヒントと交換できる機能を実装しています。正しいヒントが表示されるように、アイテムのバックパックを検索する方法を理解するのに苦労しています.

声明は次のとおりです。

最初の if(mapLocation === 9) では、「あの沈没船には緩い板がいくつかありませんでしたか?」を取得するために、バックパックでバールを検索するプログラムが必要です。メッセージ。

私のバックパック変数はこれです:

0 投票する
1 に答える
451 参照

data-structures - OCaml: テキスト アドベンチャー ゲームのデータ型を設計する

私はOCaml を学ぶために単純な素朴なテキスト アドベンチャー ゲーム (このページのベース 1) を作ろうとしています。

このゲームはゲーム エンジンを作成するためのものなので、部屋やアイテムなどに関するすべての情報は json ファイルに保存されます。

サンプルの json ファイルは次のようになります。

私はゲームをほぼ完了しましたが、プロジェクトの説明ページには、目的の 2 つが

  • ユーザー定義のデータ型、特にレコードとバリアントを設計します。
  • リストとツリーでパターン マッチングと高階関数を使用するコードを記述します。

ただし、私が作成した唯一のユーザー定義データ型は、ゲームの現在の状態をキャプチャするために使用されるレコード型であり、tree と variant は使用しませんでした:

次に、ユーザー入力を解析し、パターン マッチングを使用してさまざまな状況を処理します。

ゲームでバリアント (またはポリモーフィック バリアント)ツリーをどのように使用すればよいかを理解しようとしています。

誰か提案をお願いできますか?

0 投票する
2 に答える
302 参照

data-structures - OCaml: JSON を循環型にパースする

この質問は、私が以前に尋ねた別の質問に関連しています。

JSON ファイルからデータを読み取り、作成したデータ型に解析しようとしています。

部屋のユーザー定義タイプは次のとおりです。

ただし、部屋には「出口」フィールドがあり、それ自体が「部屋」タイプです。次に、 room1 のレコードを作成しようとすると最初に room2 を定義する必要がありますが、 room2を定義するにはroom1を知る必要があります。これは循環型のようです。

誰でもこれで私を助けることができますか?

0 投票する
2 に答える
2099 参照

python - モジュール内のすべてのクラスを Python でインスタンス化する

私はテキストベースのアドベンチャーゲームに取り組んでおり、すべてのアクションクラスを持つモジュールを持っていMove(Action)ますLook(Action). クラスのサブクラスであるモジュール内のすべてのクラスをAction次のようなリストにインスタンス化する方法が必要です。

名前を入力してクラスを個別にインスタンス化することなく、これを行う方法はありますか?

0 投票する
0 に答える
1047 参照

java - テキストアドベンチャーゲーム:テイクアンドインベントリ

完了する必要があるタスクがいくつかあり、少しガイダンスが必要です。

まず、プレイヤーが現在いる部屋にあるアイテムを取得できるようにする T コマンドが必要です。各部屋のアイテムは、それぞれの Locale 配列にあります。itemPresent を使用すると、player1 の現在のルームに最初に設定されたアイテムが取得され、ルームはゲーム全体で更新されず、代わりに move() メソッド内で更新されます。roomData[2] を使用してアイテムを取得したかったのですが、別のメソッドから変数を取得できないため、これを行うことができません。では、どうすれば現在の部屋からアイテムを取り出すことができるでしょうか?

2 つ目は、アイテムを 2 回取得できないように、一度取得したアイテムを部屋から削除する必要があります。

3 番目に、取得したアイテムを、ArrayList を使用して設定しようとしたプレイヤーのインベントリに追加する必要があります。見つけたばかりのアイテムをインベントリに追加するためのコードの設定方法がわかりません。

すべての助けに感謝します!!

これが私のメインクラスです:

これは私の Player クラスです

これは私の Locale クラスです

0 投票する
1 に答える
86 参照

javascript - JavaScript を一度に 1 つの文字列で実行する方法

今日、MadLibs で行ったのと同じように、テキスト アドベンチャーを「キャンバス」に表示しようとしましたが、一度に 1 行ずつ表示したり、ユーザーに何かをクリックして作成させる方法を見つけたりすることはできません。次の行が表示されます。もう 1 つの問題は、オプションが表示されたときにどうするかということです。誰かがこれを読んでいて、この問題を解決する方法を知っている場合は、私の Web サイトでこれまでに行ったことを確認してください。

現時点では、一連のアラート (ストーリーの各行に 1 つ) を順番に実行し、ユーザーが決定できるようにボックスを確認してプロンプトを表示する機能があります。これはあまりユーザーフレンドリーではなく、.innerHTML のようなものを使用してテキストを表示したいのですが、その方法がわかりません。

関数の背後にあるコードについては、こちらを参照してください。

ご覧のとおり、これは非常に単純であり、これらすべてのポップアップであまりユーザーフレンドリーではありません。これに関するヘルプ/アドバイスは大歓迎です! ありがとう!

0 投票する
1 に答える
343 参照

java - オブジェクトを ArrayList に追加する方法

最近 Locale コンストラクターを変更して、単なるアイテム名ではなく Item という配列を受け取るようにしましたが、ゲームでアイテムを取得する際に問題が発生しています。マップを移動しながら、部屋にあるアイテムを拾っていくテキストアドベンチャーゲームです。「ArrayList 型のメソッド add(String) は、引数 (Item) には適用できません」というエラーが表示されます。この問題を解決する方法がわかりません。

助けてくれてありがとう!

これが私のコードです:

これは私のロケールクラスです:

これは私の Item クラスです: