python二十一点游戏,每次循环生成新值

时间:2012-09-29 20:27:34

标签: python if-statement python-2.7

def deck():
    cards = range(1, 12)
    return choice(cards)

def player():
    card1 = deck()
    card2 = deck()
    hand = card1 + card2
    print card1, card2
    while hand < 21:
        choice = raw_input("Would you like to hit or stand?: ")
        print choice
        if choice == "hit":
            hand2 = hand + deck()
            print hand2     
        elif choice == "stand": 
                return hand 

大家好,

我正在尝试在python中制作一个简单的二十一点游戏。我已经走到这一步,我似乎陷入困境。当我试着玩它时会问我是否要打或站立哪个好;但是,我的问题是它似乎每次都会产生新的卡片值。这意味着如果我要击中而不是站立,它将返回原始值而不是三张牌的新值。

正如你所知,我是编程的新手,所以感谢任何帮助,我想尽可能多地使用我自己的代码。

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,那么可能 您hand2 = hand + deck()内的if正在创建问题。您正在为新值分配总和,甚至在任何地方都没有使用它。 您需要更新相同的hand。所以用上面的语句替换: -

hand = hand + deck()

答案 1 :(得分:0)

if choice == "hit":
      hand2 = hand + deck()
      print hand2     

“点击”块会修改hand2而不是hand

if choice == "hit":
      hand += deck()
      print hand