import random
cards = {"Ace" : (1, 11), "numberedCard" : random.randint(2, 10), "Jack" : 11, "Queen" : 12, "King" : 13}
playerDeck = [random.choice(list(cards.keys())), random.choice(list(cards.keys()))]
print("You have been dealt a", playerDeck[0], "and a", playerDeck[1])
total = playerDeck[0] + playerDeck[1]
print("Your total is:", total)
那么我怎么获得指定给王牌,王牌,王后,杰克的数字
答案 0 :(得分:0)
有很多方法可以使游戏正常运行。这是一个基本选项(没有种子)。
我建议使用统一的字典,而不要使用元组,函数和整数的混合。
例如,将卡映射到其值(ace设为1,然后将值11作为特殊情况进行管理,反之亦然):
cards_values = { 'Ace' : 1, 'Two' : 2, 'Three' : 3, 'Four' : 4, 'Five' : 5, 'Six' : 6, 'Seven' : 7, 'Eight' : 8, 'Nine' : 9, 'Ten' : 10, 'Jack' : 10, 'Queen' : 10, 'King' : 10 }
然后,当您从卡组中挑选一张卡片(放开种子)时,您应该考虑避免两次选择一张卡片。一种选择是定义可用卡的列表,然后随机播放卡组并弹出卡。弹出卡后,将其附加到玩家卡座上。
例如:
deck = list(cards_values.keys())
player_deck = []
n = 3 # or whatever cards you like
print("You have been dealt a:")
for _ in range(n):
random.shuffle(deck)
card = deck.pop()
player_deck.append(card)
print(card)
如果您打印纸牌,则会看到deck
中缺少n
中的player_deck
卡:
print (deck) #=> ['Queen', 'Jack', 'Ten', 'Three', 'King', 'Two', 'Four', 'Nine', 'Five', 'Seven']
print (player_deck) #=> ['Six', 'Ace', 'Eight']
获得分数,将player_deck
映射到cards_values
(我没有考虑到ace的可能值11):
sum([ cards_values[card] for card in player_deck ])