Python:CPU和人的21点对决
admin
2023-03-17 02:20:57
0
# coding:utf-8
# __author__: 神仙也考试
# __author time__: 2017/8/8
import random
print """
需求:
    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 = 0
cpu_count = 0
# 初始化循环标识
flag_cpu = 1
flag_man = 1
# **************************************
# ############# 定义人行为 #############
# **************************************
# 计算初始人得到的总数
for i in man_numbers:
    man_count = man_count + i
print "你拥有的牌是 %s " % man_numbers
print "你的牌数总计点数是 %s" % man_count
if 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_numbers
else:
    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 + j
if 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_numbers
else:
    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_count
else:
    print "和局..."
    print "你和CPU的总数都大于22..."
print "*************** 游戏结束 ***************"


上一篇:实现端口汇聚

下一篇:python操作数据库

相关内容

热门资讯

ICC逮捕令致内塔尼亚胡出行受... 【环球网报道】据以色列《新消息报》网站26日报道,由于国际刑事法院(ICC)2024年就以色列在巴勒...
“罗永浩怒斥电视机厂商”戳中了... 7月25日晚,罗永浩发文怒斥当下电视机的产品设计。据都市快报报道,罗永浩表示,他为家中老人换了两次电...
各地各部门坚持人民至上筑牢防汛... 新华社北京7月25日电 题:风雨同舟映初心——各地各部门坚持人民至上筑牢防汛抗洪坚实堤坝新华社记者当...
法院回应LV起诉地产开发商 7月26日,厦门市湖里区人民法院发布情况通报,网传案情“路易威登公司起诉地产开发商,因楼盘外立面四叶...
携程的问题不仅在于垄断,更在于... 国内平台科技企业一般都是通过向B端收费、抽佣获利,尽量给消费者创造一个比较清爽的使用环境。携程算是最...
海信电视用遥控器关闭后打不开 原因可能是遥控器的电池没有装好或者是没电了,需要重新安装一下电池或者更换新的电池试一试;原因可能是电...
电视机突然没电源打不开了 有可能是电视开关的电源线断了;可能是电视在使用时短路;可能是电源插头插座松动;可能是电视内部零件接触...
电热水器下面那个小龙头漏水是怎... 电热水器下面那个小龙头漏水是怎么回事?1、因为安全阀发生了故障或者是已经被损坏了,就会有漏水的现象;...
回答下电脑桌面一片空白怎么恢复 电脑桌面上如果是一片空白,那说明您的电脑图标被隐藏了,想要恢复就要按照如下的三个步骤去操作才行。 第...
澳总理要找特朗普“理论”关税:... 当地时间7月26日,澳大利亚总理阿尔巴尼斯表示,他将直接向美国总统特朗普提出抗议,反对美国新近宣布的...