# Guessing Game
# 1.0
# by Proto
words = ["cat", "snake", "wolf", "giraffe", "elephant"]
picked = words.sample
puts "Welcome to the guessing game! I'm thinking of an animal.
It's a #{picked.length} letter word. Can you guess what it is?"
try = gets.chomp
while try != picked
puts "Try again."
try = gets.chomp
if try == picked
puts "You win!"
break
end
end
它有效,但有时只是运行它没有错误。问题是,如果我在第一次尝试时得到了正确的猜测,那么游戏似乎根本就没有进入循环(它没有告诉我"你赢了!") ,它只是退出程序。但结果不一致。如果我马上重新启动并且有时它会告诉我我赢了。有时候它有效,有时它不起作用。我的循环或语法似乎有问题,但我无法看到它。任何帮助赞赏。感谢。
答案 0 :(得分:2)
删除if
块并将"You win!"
语句放在while
语句之外。理由是,最终,在你当前的逻辑中,玩家将获胜,只有逻辑中断,所以你不妨将其移出。
while try != picked
puts "Try again."
try = gets.chomp
end
puts "You win!"
在现有代码中未打印"You win!"
的原因是,最初try == picked
时永远不会输入循环,因为这是while
循环中的条件。
上述更改也会照顾到这种情况。