21点游戏A计算方法
1.A既可以作为1,也可以作为11,计算所有牌面的总点数
2.算法逻辑:不管有多少个A,只把第一个A先计算成11,加起来,总和如果超过21点,把第一个A变成1
3.代码:
def count_points(foker_list):
foker_list_tmp = []
foker_list_len = len(foker_list)
for i in foker_list:
foker_list_tmp.append(i)
for i in range(foker_list_len):
if foker_list_tmp[i] in ('J','K','Q'):
foker_list_tmp[i]=10
for i in range(foker_list_len):
if foker_list_tmp[i] == 'A':
foker_list_tmp[i] = 11
break
for i in range(foker_list_len):
if foker_list_tmp[i] == 'A':
foker_list_tmp[i] = 1
total=0
for i in range(foker_list_len):
total += int(foker_list_tmp[i])
if total > 21:
for i in range(foker_list_len):
if foker_list_tmp[i] == 11:
foker_list_tmp[i] = 1
total=0
for i in range(foker_list_len):
total += int(foker_list_tmp[i])
return total
foker_list = ['A', 'A', '5']
player_score3 = count_points(foker_list)
print(player_score3)
print(foker_list)
17
['A', 'A', '5']