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 "*************** 遊戲結束 ***************"