获得Blackjack sim的奇数输出

时间:2015-10-18 00:05:27

标签: python

使用cli慢慢处理Blackjack模拟器。我刚刚开始它,所以我不太深入,但我已经得到了奇怪的输出:有时当我运行下面的代码时,它给我一个正常的输出(如4 of Clubs, 9 of Spades)但有时它给出了我输出c of Diamondsi of Clubs。由于我没有在c函数中定义iCard的任何内容,我无法弄清楚为什么它会给我这种输出。任何人都可以向我解释这个吗?

import random

def Card():
    cardValue = random.randint(2,10)
    suits = ["Clubs", "Diamonds", "Hearts", "Spades"]
    special = ['Ace', 'King', 'Queen', 'Jack']
    special = random.choice(special)
    suit = random.choice(suits)
    special = random.choice(special)
    randO = random.randint(1,52)
    if randO > 16:
        print(cardValue,'of',suit)
    else:
        if special == 'Ace':
            cardValue = 11
            print(special,'of',suit)
        else:
            cardValue = 10
            print(special,'of',suit)

Card()
Card()

1 个答案:

答案 0 :(得分:1)

您经常使用special

special = ['Ace', 'King', 'Queen', 'Jack']

现在,special是一个列表。

special = random.choice(special)

现在它已经" Ace"或者" King"或"女王"或者"杰克"。

suit = random.choice(suits)
special = random.choice(special)

现在当你再次执行这一行时,它意味着"从special中选择一个随机字符是"。

special一个更好的名字 - 不要用它来表示一个列表和一个单词 - 而且你不需要两次拨打random.choice(special)