0

https://github.com/addrum/TextGame

だから私はこのゲームを持っています。これまでに達成したことは、ユーザーが正しい応答を入力すると、次のメッセージを返し、配列から何をすべきかを理解することです。ここで達成する必要があるのは、プログラムが入力内容に応じて異なるメッセージを返すことです。つまり、左に行くとドアに着き、右に行くと鍵を拾います。これを行う方法について私はとても混乱しています。特定の時点でメッセージをグループ化することを考えました。だからあなたは交差点に到達します - そして、左に行く、右に行く、そして前進するための出力は一緒に配列にありますが、プログラムが次のメッセージのグループを取得する方法がわかりません。また、正しい入力のインデックスを [0] にして、現在のメッセージ グループのインデックス [0] を返して一致させるというアイデアもありましたが、これも混乱しました。これを説明する簡単な方法がないので、明確にできる場合は聞いてください。どんな助けでも大歓迎です!

4

1 に答える 1

0

テキスト アドベンチャー ゲーム (「Interactive Fiction」または「IF」) の作成に興味がある場合は、そのために設計された多くのツールのいくつかを検討する必要があります。

  • 伝統的な系譜でテキスト アドベンチャーを作成するためのコンパイラは、IFWikiから見つけることができます。たとえば、これはSpider と Webを実行する Parchment インタープリターです (私のお気に入りの 1 つです)。wikiにも楽しいIFの書き方がたくさん書いてあります。
  • Choice of Gamesはクロスプラットフォームの IF を作成する会社で、主にモバイル デバイスを対象としています。IF を記述するための独自のスクリプト言語があり、ゲームを販売したい場合は、それを管理することもできます。
  • Twineは、Web ベースの IF を構築するための IDE です。自分で試したことはありませんが、書くのは簡単に見えます。

これが単なる Java プロジェクトの一種である場合は、次のアプローチをお勧めします。

/**
  * Represents one location or one state in the game.
  */
public class DecisionTreeNode {
    /** Text that gets printed when the user lands on this node */
    private final String nodeText;

    /** Maps text that the user can enter to the node that they reach by typing that text */
    private final Map<String,DecisionTreeNode> choices;
}

そのスタブに記入すると、非常に単純な IF のサブセットを作成できます。いくつかのノードの例を次に示します (質問のサンプル ゲームを使用)。

  • 始める
    • nodeText: "左右に分岐する回廊にいます"
    • 選択肢:
      1. 「左」 -> Door_no_key
      2. "右" -> Dead_end_no_key
  • Door_no_key
    • nodeText: "ここにドアがありますが、鍵を持っていません"
    • 選択肢:
      1. 「右」 ->開始
  • Dead_end_no_key
    • nodeText: "ここは行き止まりです。ここに鍵があります!"
    • 選択肢:
      1. 「キーを取得」 -> Dead_end_key
      2. 「左」→スタート
  • Dead_end_key
    • nodeText: "ここは行き止まりです。あなたは鍵を持っています。"
    • 選択肢:
      1. 「左」 -> Start_key

等々。プレイヤーの状態を追跡すると、ゲーム デザインがすぐに手に負えなくなることがわかります。そのため、深刻な IF ゲームには IF ツールをお勧めします。しかし、これはプログラミングのポインターについて独学するには良い方法かもしれません。

于 2013-06-13T20:33:18.437 に答える