【问题标题】:I'm trying to do a blackjack in python我正在尝试在 python 中进行二十一点
【发布时间】:2021-11-01 19:58:23
【问题描述】:

我正在玩二十一点,但我遇到了问题。 如果我想让他打印例如 Q 以将其打印为 str,我不知道该怎么做,但是当添加玩家的手时,我将其视为 10。

它给我的错误是:TypeError: unsupported operand type(s) for +: 'int' and 'str'

我的代码是:

jugador = []
dealer = []
deck = ['A' ,2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'K', 'Q']

for card in deck:
    if card == 'J':
        card = 10 
    elif card == 'K':
        card = 10
    elif card == 'Q':
        card = 10

while len(jugador) != 2:                            
    random.choice(deck)
    card = random.choice(deck)
    jugador.append(card)
    if card == 'A':
        card = 11
    print(jugador)
    if sum(jugador) > 11:
        print("Hola")```

【问题讨论】:

  • 您可以有两个列表,一个包含卡片的表示 ("A", 2, 3...),另一个包含值。或者你可以有一个字典,其中键是表示,值是值。旁注:"A" 的值可以是 1 或 11,具体取决于具体情况。请记住这一点。

标签: python blackjack


【解决方案1】:

您要跟踪两个值:名称和有效值。您的代码当前尝试在一个变量中跟踪它们。尝试使用不同的变量来跟踪名称与值,或者尝试定义和使用类来捕获这些细节。

【讨论】:

    【解决方案2】:

    您需要升级代码中的一些内容,例如牌组包含每个数字的 4 张卡片,因此您应该添加它。您还可以使用字典来表示牌组:

    deck = {'A': 1, '2': 2, ..., 'K': 10}

    请注意,在字典中,键是字符串,值是整数。您还应该删除第一个 random.choice(deck),因为您将随机值存储在 card 变量中,并且不要忘记删除您为玩家选择的卡。

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      相关资源
      最近更新 更多