1
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 制作一个简单的二十一点游戏。我已经走到这一步了,我似乎被困住了。当我尝试弹奏时,它会询问我是否要击打或站立哪个好;但是,我的问题是它似乎每次都在生成新的卡值。这意味着如果我击中而不是站立,它将返回原始值而不是三张牌的新值。

正如您可以告诉我的那样,我是编程新手,因此感谢您提供任何帮助,我想尽可能多地使用我自己的代码。

4

2 回答 2

2

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

hand = hand + deck()
于 2012-09-29T20:30:41.233 回答
0
if choice == "hit":
      hand2 = hand + deck()
      print hand2     

“命中”块修改hand2而不是hand.

if choice == "hit":
      hand += deck()
      print hand
于 2012-09-29T20:30:51.683 回答