我正试图在Ruby中制作随机数字猜谜游戏。我很新,所以答案很明显,但为什么这不起作用?
number = rand(5)
choice = 9999
while number != choice do
puts "Guess the number #{number}"
choice = gets.chomp
end
puts "You guessed Correctly! #{number} was the correct number."
如您所见,我将其限制在0到4之间的数字。然后while循环运行,而用户的猜测与生成的随机数不同。但是,即使用户输入正确的数字,while循环也会继续循环。正如你所看到的,我甚至打印了生成的数字,所以我知道要猜哪个。
知道这里出了什么问题吗?
答案 0 :(得分:3)
number
是一个数字,choice
是一个字符串。您需要解析字符串才能使其正常工作:
choice = gets.chomp.to_i
答案 1 :(得分:1)
您可能应该使用其他内容来比较从rand()
函数返回的数字和从gets
返回的字符串。< / p>
也许宇宙飞船运营商(<=>
)会工作,并使用to_s
将数字转换为字符串,在这种情况下,while循环标题看起来像
while !(number.to_s <=> choice) do
或类似的东西。
但您不必使用宇宙飞船运营商。