编写一个Python程序来模拟一个简单的21点游戏

img

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("输入有误")



希望题主能够完善完善再发出来