千家信息网

Python:CPU和人的21点对决

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,# coding:utf-8# __author__: 神仙也考试# __author time__: 2017/8/8import randomprint """需求: 1、初始CPU和人各随
千家信息网最后更新 2025年02月02日Python:CPU和人的21点对决
# coding:utf-8# __author__: 神仙也考试# __author time__: 2017/8/8import randomprint """需求:    1、初始CPU和人各随机拥有2张牌;    2、各计算得出初始2张牌的总数;    3、当拥有的牌数小于16点则自动新增一张牌;    4、新增的牌进入计算总和;    5、人的计算中:当大于等16点时候进行选择是否加牌;当加的牌大于等于22点,则自动停止;    6、CPU的计算中:当小于16点则自动新增牌并计算;当大于16点则自动停止;    7、最后得出的值进行比较    8、比较规则:    【1】都大于等于22点,则和局;    【2】都小于22点时,若两个数相等,则和局;    【3】点数大者为赢,点数小者为输。"""print "*************** 开始游戏 ***************"# 初始化4个随机1-10的整数number1 = random.randint(1, 10)number2 = random.randint(1, 10)number3 = random.randint(1, 10)number4 = random.randint(1, 10)# 初始化CPU和人的随机列表man_numbers = [number1, number2]cpu_numbers = [number3, number4]# 初始化CPU和人的总数man_count = 0cpu_count = 0# 初始化循环标识flag_cpu = 1flag_man = 1# **************************************# ############# 定义人行为 ############## **************************************# 计算初始人得到的总数for i in man_numbers:    man_count = man_count + iprint "你拥有的牌是 %s " % man_numbersprint "你的牌数总计点数是 %s" % man_countif man_count < 16:  # 小于16则继续自动添加牌到16点以上    print "拥有的牌数小于16点,自动添加新牌到16点以上..."    while flag_man == 1:        man_random1 = random.randint(1, 10)     # 获得随机值,保证每次取到的都是一个新的随机值        man_numbers.append(man_random1)    # 把获得的随机值添加到列表中        man_count = man_count + man_numbers[-1]   # 始终加上列表的最后一个值        if man_count >= 16 and man_count <22:            while flag_man == 1:                print "你拥有的牌数点数大于16点,总数为 %s,是否需要继续添加新牌?" % man_count                print "任意键表示继续要牌,输入大写Q或小写q,表示退出!"                get_key = raw_input("请输入:\n")                if get_key == 'Q' or get_key == 'q':                    flag_man = 0                else:                    man_random2 = random.randint(1, 10)   # 获得随机值,保证每次取到的都是一个新的随机值                    man_numbers.append(man_random2)   # 把获得的随机值添加到列表中                    man_count = man_count + man_numbers[-1]  # 始终加上列表的最后一个值                    if man_count >= 22:                        flag_man = 0        if man_count >= 22:            flag_man = 0    print """******************************"""    print "当前你的牌数总数是 %s" % man_count    print "当前你拥有的牌是 %s" % man_numberselse:    while flag_man == 1:        print "你拥有的牌数点数大于16点,总数为 %s,是否需要继续添加新牌?" % man_count        print "任意键表示继续要牌,输入大写Q或小写q,表示退出!"        get_key = raw_input("请输入:\n")        if get_key == 'Q' or get_key == 'q':            flag_man = 0        else:            man_random3 = random.randint(1, 10)  # 获得随机值,保证每次取到的都是一个新的随机值            man_numbers.append(man_random3)   # 把获得的随机值添加到列表中            man_count = man_count + man_numbers[-1]  # 始终加上列表的最后一个值            if man_count >= 22:                flag_man = 0    print """******************************"""    print "当前你的牌数总数是 %s" % man_count    print "当前你拥有的牌是 %s" % man_numbers# **************************************# ############# 定义CPU行为 ############# **************************************# 计算初始CPU得到的总数for j in cpu_numbers:    cpu_count = cpu_count + jif cpu_count < 16:    while flag_cpu == 1:        # CPU获取随机值        cpu_random1 = random.randint(1, 10)        cpu_numbers.append(cpu_random1)        cpu_count = cpu_count + cpu_numbers[-1]        if cpu_count >= 16:            flag_cpu = 0    print """******************************"""    print "CPU的总和是 %s" % cpu_count    print "当前CPU拥有的牌是 %s" % cpu_numberselse:    print """******************************"""    print "CPU的总和是 %s" % cpu_count    print "当前CPU拥有的牌是 %s" % cpu_numbers# **************************************# ######### 比较CPU和人的值 ############ **************************************print """******************************"""if man_count >= 22 and cpu_count < 22:    print "CPU赢了..."    print "你的总数大于22,你输了..."elif man_count < 22 and cpu_count >= 22:    print "你赢了..."    print "CPU的总数大于22,CPU输了..."elif man_count <= 21 and cpu_count <= 21:    if man_count > cpu_count:        print "你赢了..."        print "你的总数为:%s" % man_count        print "CPU输了..."        print "CPU的总数为:%s" % cpu_count    elif man_count < cpu_count:        print "CPU赢了..."        print "CPU的总数为:%s" % cpu_count        print "你输了..."        print "你的总数为:%s" % man_count    else:        print "和局..."        print "你和CPU的总数都为:%s" % man_countelse:    print "和局..."    print "你和CPU的总数都大于22..."print "*************** 游戏结束 ***************"


0