红宝石"while"我在这里做错了什么



现在我正在尝试询问用户是否想在21点游戏中点击或停留。

如果他命中,则向他发一张牌,计算总数,并给他总数。这些我都记对了。但我不知道如果他的总数是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

你知道我怎么能在他已经选择要打之后再问他"你想打还是留下"这个问题吗?

以" end "结束while循环,而不是break。还要确保在while循环之外声明这些变量。你必须在while内再次检查响应,或者即使玩家说stay,你仍然会最后一次给出一张牌。

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

理想情况下,我认为你应该写一个单独的方法来做这件事,并在玩家要求点击时再次调用该方法,但我不能在这里这样写。

相关内容

  • 没有找到相关文章

最新更新