問題タブ [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 投票する
4 に答える
384 参照

python - テキスト アドベンチャーの軽量 MIDI 再生?

私は Python で単純なテキスト アドベンチャーを作成していますが、バックグラウンド MIDI ミュージックを使用すると、退屈さが少し軽減されるのではないかと考えました。

Python用のシンプルで軽量なMIDIプレーヤー/ APIはありますか? それとも、Pygame のような完全なゲーム ライブラリを使用する必要がありますか? (もしそうなら、できるだけ軽量にしたいので、パスしたいからです。)

0 投票する
3 に答える
1820 参照

objective-c - Objective-C の単純な自然言語パーサー

私はこのアプリを Mac OS X v10.6 用に構築しています

私はテキストベースの冒険を構築しており、ユーザーが入力するコマンドを処理できる非常に単純な自然言語パーサーを作成しました。これまでのところうまく機能し、「剣を取る」や「箱の中を見る」などの文を解析できます。

私がやろうとしているのは、さまざまな単語のエイリアスのリストを作成して、入力コマンドの厳密さを緩和することです。たとえば、"take" は "grab" の別名を持つことができ、"go" は "move、walk、または travel" の別名を持つことができます。

キーが単語で、値がエイリアスの NSArray である NSDictionary を作成しようとしました。問題は、入力されたコマンドが使用可能なコマンドと一致するかどうかを判断する際に、キーに使用された単語でエイリアスを参照する必要があることでした。

エイリアスのいずれかを使用して、他のエイリアスを参照できるようにしたいと考えています。誰かがそれを行う良い方法を知っていますか?

私が考えたもう 1 つの考え (ただし、効率が悪いようです) は、エイリアスの各セットを配列に格納することです。解析するときに、一致させたい単語を含む配列を見つけ、その配列内の他のすべての単語をそれに対して一致させようとします。

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

.net - 選択ベースのアドベンチャーゲームのデータ構造?

私はVB.NET2010で選択ベースのアドベンチャーゲームを設計しています。ここでは、ストーリーラベルが表示され、2つのボタンから選択して選択します。これを行うための最も効率的な方法を知りたいです。

私の目標は、ボタンとストーリーのラベルを、現在一時的にハッシュテーブルであるデータ構造の形式と、選択肢の構造の形式で保存することです。現在、次の2つの選択肢のインデックスと、クラスインスタンスをハッシュテーブルに格納するそれぞれのラベルインデックスを参照するカスタムクラスを使用しています。配列、辞書、リスト、コレクションなどを調べましたが、どれが自分の目的に最も適しているかわかりません。任意の.NETデータ構造が機能します。これら2つのデータの最も効率的なデータ構造は何ですか?文字列配列だけで機能しますか?

0 投票する
3 に答える
5338 参照

python - 私はpythonのテキストアドベンチャーを作っています。「目録」の作成に助けが必要

私はpythonテキストアドベンチャーを作っています。Learn Python the Hard Way の ex41 に基づいているため、多少似ています。しかし、私の質問はその演習とは何の関係もありません。アイテムを拾って使用できるように、インベントリを作成しようとしています (つまり、キーまたはファブリーズ)。

最初の私の計画では、アイテムが「ピックアップ」されたときに値が True に設定されるようにブール変数を使用することでしたが、機能していないようです。部屋を出ると値がリセットされるのが問題だと思います。

今、私はリストを試しています。アイテムが「ピックアップ」されると、アイテムは在庫リストに追加されます。

どうすればインベントリを作成できますか、または少なくともアイテムを「ピックアップ」してから後で「使用」できますか?

私が重要だと思うコード行は、18 ~ 20 ( の下def __init__(self, start))、77 ( の下def cell(self))、161 ~ 162 ( の下def janitor(self)) です。

0 投票する
5 に答える
1738 参照

c++ - テキストアドベンチャーで複数の可能性のある文字列に一致する解析。

私は大学の最初の学期にいて、C++ でテキスト アドベンチャー ゲームを作成する必要があります。これまで、配列構造体、およびポインターを実行してきました。問題をグーグルで検索しようとしましたが、他のほとんどのユーザーはまだ行っていないクラスを使用しています。

教授はGo Northopen door with keyなどのコマンドを使用するように求めています。私は、北に行く
などのホットキーを使用してなんとか機能させましたnが、明らかに彼が私たちに望んでいるようにやりたいと思っています。

私の質問は次のとおりです。複数の文字列からなるコマンドを作成するにはどうすればよいですか?

問題は、コマンド、オブジェクト、および (この部屋で 2 つを組み合わせる可能性がある場合) 前置詞と別のオブジェクトのライブラリを作成する必要があることです。各ライブラリには、使用する単語があるはずです。たとえば、コマンドは次のとおりです。使用、移動、話す、読むなど...

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

c++ - プログラムを最小化するとビットマップが消える

私は C++ ゲーム プログラミングの学生です。Windows のコンソールで textadventure をプログラムする必要があります。ビットマップの実装のポイントを取得します。ビットマップを表示する次のコードがあります。うまくいきますが、ウィンドウを最小化するとビットマップが消えます。問題はどこですか?

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

c++ - 文字列パーサー テキスト アドベンチャー

こんにちは!私は現在 C++ でテキスト アドベンチャーに取り組んでおり、助けが必要です。

私がやろうとしているのは、ユーザーに次のようなコマンドを入力させることです:

  • 「キッチンに行く」
  • 「鍵でドアを開ける」

それに応じてゲームを反応させます。

私たちの先生は私たちに次のコード (私が修正したもの) をくれましたが、それが何をしているのか、それをどのように使用してゲームを作成できるのかを理解するのに苦労しています。ユーザーがstrings を入力できるように変更stringし、動詞、目的語、前置詞、および object2 に見事にトークン化します。

しかし、私がしなければならないことは、何らかの方法で入力を使用可能なコマンドのリストと比較することです。これは、私が現時点で達成するのに苦労していることです。私はプログラミングが初めてで、勉強の宿題としてこれを行う必要があります。どんな助けでも大歓迎です。

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

actionscript-3 - AS3-(非常に)シンプルなテキストアドベンチャー

ソースコードやチュートリアルなど、使えるものを探していましたが、今のところ運がありません。私が最も近かったのはhaXicを使用していましたが、入力ボックスの外観を変更する方法がありませんでした(オープンソースファイルでこれを修正できましたが、コンパイラを変更できなければ、修正は固執しません結果の.swf)、目的のフォントと色を実現できません。

それで、私はActionscript 3 / Flashに目を向けます。それについてはある程度の知識がありますが、主にWebサイトの構築に使用されます。目標は、従来のテキストアドベンチャー構造に基づいて、非常に非常にシンプルなゲームを作成することです。私がシンプルと言うとき、私は本当にシンプルを意味します。マップも、NPCも、アイテムも、いつでもアクセスできるコマンドのリストも必要ありません。必要なのは、テキストを表示し、特定の入力を受け入れてから、その入力が何であるかに基づいてさらにテキストを表示することです。

これが私が達成しようとしていることの例です:.swfがロードされ、ユーザーにはPOSTを模倣したテキストが表示されます。これは実際のプリローダーではなく、「すべてが起動している」という派手なテキストです。アニメーションの最後に、ユーザーは任意のキーを押して続行するように指示されます。そうすると、既存のテキストが削除され、次のセットに読み込まれます。そこから、特定の入力を必要とするさまざまな手順を実行したいと思います(つまり、ユーザーにユーザー名を要求し、ユーザー名の入力を要求します:、しかしこれは実際にはユーザー名を保存する必要はなく、ユーザー名の有効な形式を持っているだけです:名前が検出されました次のステップに進む前に)、追加のテキストを出力するか、既存のテキストをワイプして新しいプログラムの開始をシミュレートします。

これは主に、入力に基づいてさまざまな関数を呼び出し、それらの関数内で期待される入力を変更することを伴うと思いますが、どこから始めればよいのか本当にわかりません。また、私が見たいくつかの例で、入力テキストがボタンを使用して送信されることに気づきました。コマンドコンソールをシミュレートするために、これをEnterキーだけで機能させる方法はありますか?

私は確かに完全なソースコードを期待しているのではなく、ほんの少しのポインタを期待しています。どんな助けでもありがたいです、ありがとう!Actionscript以外の提案も受け付けていますが、結果として得られるゲームはWebブラウザーで実行できる必要があり、テキスト用の何らかの形式のアニメーションが推奨されます。

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

java - テキストアドベンチャーでの出口の実装

私はJavaプログラミングクラス用のテキストアドベンチャーゲームを書いています。abstract各部屋が継承して構成する親部屋クラスを使用して部屋を設定しています。

出口の場合、ルームはメソッドを呼び出して.addExit()出口オブジェクトを渡すだけです。ゲームには、すべての部屋のインスタンスを1つだけ含める必要があります。出口オブジェクトには、コンストラクターで初期化されるゲームの部屋の1つを指すターゲットフィールドが必要です。

私の問題は、出口コンストラクターに、新しい部屋オブジェクトではなく、既存の部屋参照を渡す方法がわからないことです。私の見方では、2つの方法が考えられます。

  1. 出口コンストラクターに部屋インスタンスへの参照を直接渡します。
  2. すべての部屋のインスタンスを追跡し、文字列名やクラスなどからインスタンスを返すメソッドを持つ静的クラスを用意します。
    次に、出口オブジェクトのコンストラクターに、オブジェクトが一意の文字列名など、ターゲットの部屋を識別する方法が渡されます。次に、コンストラクターは、ルームインスタンスを返す静的クラスのメソッドの1つを呼び出すために使用します。

どちらが最良のオプションであるか、どちらのオプションを実装するか、または完全にもっと良い方法があるかどうかはわかりません。

0 投票する
3 に答える
1514 参照

c# - テキスト アドベンチャー ゲームのディスパッチ テーブルを実装するにはどうすればよいですか?

私はC# でテキスト アドベンチャーを作成していますが、switch ステートメントの代わりにディスパッチ テーブルを使用するよう提案されました。

switch ステートメントのコードは次のとおりです。

これをリファクタリングしてディスパッチ テーブルを使用するにはどうすればよいですか?