Python 计算21点的数量';100张双卡交易中出现的s
我需要数一数,从一双5层的鞋子里,100张2张牌的交易中,21点发生的次数。到目前为止,我有: str()-转换为字符串 convert()-将整数(0-259;即5组)转换为卡 得分2(手牌)-计算2张牌中第二张牌的得分 我希望能够用以下方法画10只手:Python 计算21点的数量';100张双卡交易中出现的s,python,blackjack,playing-cards,Python,Blackjack,Playing Cards,我需要数一数,从一双5层的鞋子里,100张2张牌的交易中,21点发生的次数。到目前为止,我有: str()-转换为字符串 convert()-将整数(0-259;即5组)转换为卡 得分2(手牌)-计算2张牌中第二张牌的得分 我希望能够用以下方法画10只手: hands = [draw_n(2) for i in range(100)] 在此之后,计算21点出现时间的最有效方法是什么?如果没有21点,您可以使用draw\n返回0,如果有21点,则返回1。然后把它们加起来。 hand_total
hands = [draw_n(2) for i in range(100)]
在此之后,计算21点出现时间的最有效方法是什么?如果没有21点,您可以使用
draw\n
返回0,如果有21点,则返回1。然后把它们加起来。
hand_total = [sum(x) for x in hands]
hand_total.count(21)
def draw_n(n):
from random import sample
cards = []
# Make sure a valid number is entered
if n >0 and n <= 260:
# Sample without replacement
for x in sample(xrange(0,260),n):
# Append converted card to list 'cards'
cards.append(convert(x))
return cards
def score1(hand):
if hand[0][0] == 0:
val1 = 11
return val1
elif hand[0][0] == 1:
val1 = 2
return val1
elif hand[0][0] == 2:
val1 = 3
return val1
elif hand[0][0] == 3:
val1 = 4
return val1
elif hand[0][0] == 4:
val1 = 5
return val1
elif hand[0][0] == 5:
val1 = 6
return val1
elif hand[0][0] == 6:
val1 = 7
return val1
elif hand[0][0] == 7:
val1 = 8
return val1
elif hand[0][0] == 8:
val1 = 9
return val1
elif hand[0][0] == 9 or hand[0][0] == 10 or hand[0][0] == 11 or hand[0][0] == 12:
val1 = 10
return val1
def score2(hand):
if hand[1][0] == 0:
val2 = 11
return val2
elif hand[1][0] == 1:
val2 = 2
return val2
elif hand[1][0] == 2:
val2 = 3
return val2
elif hand[1][0] == 3:
val2 = 4
return val2
elif hand[1][0] == 4:
val2 = 5
return val2
elif hand[1][0] == 5:
val2 = 6
return val2
elif hand[1][0] == 6:
val2 = 7
return val2
elif hand[1][0] == 7:
val2 = 8
return val2
elif hand[1][0] == 8:
val2 = 9
return val2
elif hand[1][0] == 9 or hand[1][0] == 10 or hand[1][0] == 11 or hand[1][0] == 12:
val2 = 10
return val2
hands = [draw_n(2) for i in range(100)]
hand_total = [sum(x) for x in hands]
hand_total.count(21)