首页 > 代码库 > Python:CPU和人的21点对决
Python:CPU和人的21点对决
# 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 "*************** 游戏结束 ***************"
本文出自 “as1024” 博客,请务必保留此出处http://as1024.blog.51cto.com/12241298/1954497
Python:CPU和人的21点对决
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。