私はここでルビプログラムを持っていますが、cはハッシュで構成されています。基本的に、ユーザーがlまたはpまたはscを入力すると、コンピューター生成キーが、プレーヤーまたはユーザーである最初の変数の基準に一致するかどうかがチェックされます。それが基準に合っていれば、あなたは勝ちます。しかし、そうでなければ、それはあなたを緩やかに返すでしょう。それ以外の場合は、同じであればネクタイが印刷されます。上記のコードでRubyはif文をスキップします
MY_CHOICES = {
'l' => 'light',
'p' => 'paper',
'sc' => 'scan',
}
def test?(first, second)
(first == 'p' && second == MY_CHOICES ['l']) ||
(first == 'l' && second == MY_CHOICES ['p']) ||
(first == 'sc' && second == MY_CHOICES ['sc']) ||
(first == 'l' && second == MY_CHOICES ['l'])
end
def print_results(player, computer)
if test?(player, computer)
puts("You won!")
elsif test?(computer, player)
puts("Computer won! You loose!")
else
puts("It's a tie!")
end
end
puts "Enter a key: "
choice = gets().chomp()
computer_choice = MY_CHOICES.values.sample
print_results(choice, computer_choice)
puts("You chose: #{choice}, computer choose: #{computer_choice}"
、私のコードは、コードをスキップし、常に私は私がここで行方不明ですしていないものを「それは引き分けだ」印刷されています。何か案が?
@etusm:テストは例として真
に評価することはありませんので、ユーザーはrps.rbとランニングとしてこれを保存し、「L」、「P」、および「SC」を入力している何が問題あなたはそれを見ますか? – Linuxios
あなたはプレイヤーとコンピュータに異なる選択肢を使用しています - それは意図的ですか? – Linuxios
@Linuxios:修正しました。 –