Ruby“虽然”我在这里做错了什么

时间:2014-03-09 02:20:40

标签: ruby while-loop

现在我试图询问用户是否想要在二十一点游戏中击中或停留。

如果他点击它会向他发牌,计算总数,并给他总数。我把所有这些都正确地解决了。但我不知道如果他的总数是20或更少,他是否可以再次询问他。

while p1total <= 20 && hit_stay == '1'
puts "would you like to 1.) hit or 2.) stay"
    hit_stay = gets.chomp
    playercards << deck.pop
    p1total = calculate_total(playercards)
    puts "You got delt a #{playercards[2]} You now have #{p1total}"
break

任何想法如何在他已经选择击中之后再次提出“你想要击中还是留下来”的问题?

1 个答案:

答案 0 :(得分:0)

用'end'关闭while循环而不是中断。还要确保在while循环之外声明这些变量。你必须在一段时间内再次检查回复,否则即使玩家说留下,你仍然会最后一次给你一张卡。

p1total = 0
hit_stay = '1'

while p1total <= 20 && hit_stay == '1'
    puts "would you like to 1.) hit or 2.) stay"
    hit_stay = gets.chomp
    break if hit_stay != '1'
    playercards << deck.pop
    p1total = calculate_total(playercards)
    puts "You got delt a #{playercards.last} You now have #{p1total}"
end

理想情况下,我认为您应该编写一个单独的方法来执行此操作,并在播放器请求命中时再次调用该方法,但我不能这样写。