Ruby随机数生成器

时间:2014-06-28 20:22:31

标签: ruby

我正试图在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循环也会继续循环。正如你所看到的,我甚至打印了生成的数字,所以我知道要猜哪个。

知道这里出了什么问题吗?

2 个答案:

答案 0 :(得分:3)

number是一个数字,choice是一个字符串。您需要解析字符串才能使其正常工作:

choice = gets.chomp.to_i

答案 1 :(得分:1)

您可能应该使用其他内容来比较从rand()函数返回的数字和从gets返回的字符串。< / p>

也许宇宙飞船运营商(<=>)会工作,并使用to_s将数字转换为字符串,在这种情况下,while循环标题看起来像

while !(number.to_s <=> choice) do

或类似的东西。

但您不必使用宇宙飞船运营商。