我正在尝试在Python 3中创建一个二十一点模拟器,我正在尝试定义一个函数,它将为它处理的卡分配一个数值。我相信在调用我的函数时我犯了一个错误。
{
import random
import CardVal
cards = [
'AS', '2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', 'TS', 'JS', 'QS', 'KS',
'AC', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', 'TC', 'JC', 'QC', 'KC',
'AD', '2D', '3D', '4D', '5D', '6D', '7D', '8D', '9D', 'TD', 'JD', 'QD', 'KD',
'AH', '2H', '3H', '4H', '5H', '6H', '7H', '8H', '9H', 'TH', 'JH', 'QH', 'KH'
]
decks = 6 * cards
player = []
dealer = []
for i in range(2):
player.append(decks.pop(random.randrange(len(decks) - 1)))
dealer.append(decks.pop(random.randrange(len(decks) - 1)))
print('Players cards:', player)
print('Dealers card:', dealer[1])
total = 0
for i in range(len(player)):
CardVal.card_value(player[i])
total += player[i]
}
这是我正在调用的函数
{
def card_value(card):
if '2' in card:
card = 2
elif '3' in card:
card = 3
elif '4' in card:
card = 4
elif '5' in card:
card = 5
elif '6' in card:
card = 6
elif '7' in card:
card = 7
elif '8' in card:
card = 8
elif '9' in card:
card = 9
elif 'T' in card or 'J' in card or 'Q' in card or 'K' in card:
card = 10
elif 'A' in card:
card = 11
}
答案 0 :(得分:0)
只需使用字典:
def card_value(card):
values = {'T': 10, 'J': 10, 'Q': 10, 'K': 10, 'A': 11}
if card[0].isdigit():
return int(card[0])
else:
return values[card[0]]