0

Ruby で単純なコマンド ライン ゲームを作成していますが、データベース/HTTP ダイナミックなしでいくつかの情報を保存するのに問題があります。

たとえば、(ゲームで) サンドイッチを作る必要があるとします。次のように、選択できるさまざまな材料が表示されます。

[1] Carrot
[2] Banana
[3] Cheese
[4] Tomato

数と成分の間の直接的な対応をハードコードすることはできません。それ以前は、いくつかの成分を無作為に使用することは禁止されていたためです (したがって、完全な成分配列は 2 アイテム長くなります)。[1] [2] [4] [6]そして、混乱を招くので、ような番号が付けられたリストを提示したくありません.

私が今行っているのは、手紙とアイテムの間の直接的な通信をハードコーディングすることです。つまり、 for Bananapress B、 for CheesepressCなどです。しかし、特にこれはゲーム全体で使用されるパターンであり、状況によっては、私とプレイヤーの両方にとって非常に不便になるため、理想的とは言えません.

それで、これを行うためのより良い方法はありますか?ランダムに生成されたリストの項目に入力を関連付けるにはどうすればよいですか?

4

1 に答える 1

0

これが私がそれを解決した方法です:

Mario Zannone のコメントindexは、配列要素の を として使用できることに気づきましたid。一方、私は全体を一種の単なるテキストであるかのように見ていました。

そのため、これを利用するために私が思いついたコードは次のとおりです。

(0...@ingredients.length).each do |i|
    puts "[#{i+1}] #{@ingredients[i]}"
end

そうすれば、要素と入力が直接対応するようになりました。

choice = gets.chomp.to_i - 1
@selected_ingredient = @ingredients[choice]
于 2015-09-04T10:08:04.077 に答える