繁体   English   中英

Ruby“而”我在做什么错

[英]Ruby “while” what am i doing wrong here

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

如果他击中,它将向他发出一张牌,计算出总数,然后给他总数。 我把所有这些都记下来了。 但是我不知道如果他想再次击中他,如果他的总数不超过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循环,不要中断。 还要确保在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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM