1~11包含1和11吗,如果两次都随机到11,不是直接超21点了吗
import random
def who_s_your_daddy(p1: list, p2: list, user: list):
dict_p = {
"p1": get_point(p1),
"p2": get_point(p2),
"user": get_point(user)
}
ano_dict = {}
for i in dict_p:
if dict_p[i] < 0:
print(f"玩家:{i},点数为{dict_p[i]},爆炸!")
elif dict_p[i] == 0:
print(f"玩家:{i},21点!")
return (i, 0)
elif dict_p[i] > 0:
ano_dict[i] = dict_p[i]
winner = max(ano_dict.items())
return winner
def get_point(player):
p_num = 0
for i in player:
p_num += i
p_p = 21 - p_num
return p_p
while True:
user_input = input("Continue?(Y/N):")
if user_input == "N":
break
if user_input == "Y":
p1 = random.choices(range(1, 10), k=2)
p2 = random.choices(range(1, 10), k=2)
user = random.choices(range(1, 10), k=2)
print(f"当前手牌:{user}")
while True:
print("是否加牌?(Y/N):")
user_choice = input("")
if user_choice == "N":
winner = who_s_your_daddy(p1, p2, user)
print("*" * 100)
print(f"游戏结果:"
f"p1: {p1};"
f"p2: {p2};"
f"user: {user}")
print(f"赢家:{winner[0]}, 点数:{21 - winner[1]}")
print("*" * 100)
break
if user_choice == "Y":
card = random.choice(range(1, 10))
user.append(card)
print(f"当前手牌:{user}")
else:
print("输入有误")
希望题主能够完善完善再发出来