案例:python玩21点

  • 2020 年 1 月 14 日
  • 筆記
  • 两个玩家,游戏开始先输入名字
  • 用字典保存每个玩家信息:姓名,获胜次数
  • 电脑随机产生2个数,每个玩家轮流猜1个数,与电脑随机两个数求和,最接近21的获胜
  • 每轮结束显示玩家信息
  • 按q退出游戏
import random  user1 = input('user1name:')  user2 = input('user2name:')  user_info = {user1:              {'win':0},               user2:               {'win':0}              }  while True:      computer1_num = random.randint(1,10)      print(f'电脑随机产生一个数:{computer1_num}')      computer2_num = random.randint(1,10)      print(f'电脑随机产生一个数:{computer2_num}')      user1_num = input(f'{user1}请猜一个数(按q结束):')      user2_num = input(f'{user2}请猜一个数(按q结束):')      if user1_num == 'q' or user1_num == 'q':          print('end')          break      else:          user1_sum = int(computer1_num) + int(computer2_num) + int(user1_num)          user2_sum = int(computer1_num) + int(computer2_num) + int(user2_num)          if abs(user1_sum-21) > abs(user2_sum-21):              print(f'{user1}点数:{user1_sum},{user2}点数:{user2_sum},结果:{user2}获胜')              user_info[user2]['win']+=1              print(user_info)          else:              print(f'{user1}点数:{user1_sum},{user2}点数:{user2_sum},结果:{user1}获胜')              user_info[user1]['win']+=1              print(user_info)
user1name:周杰伦  user2name:高圆圆  电脑随机产生一个数:1  电脑随机产生一个数:7  周杰伦请猜一个数(按q结束):5  高圆圆请猜一个数(按q结束):6  周杰伦点数:13,高圆圆点数:14,结果:高圆圆获胜  {'周杰伦': {'win': 0}, '高圆圆': {'win': 1}}  电脑随机产生一个数:6  电脑随机产生一个数:2  周杰伦请猜一个数(按q结束):1  高圆圆请猜一个数(按q结束):2  周杰伦点数:9,高圆圆点数:10,结果:高圆圆获胜  {'周杰伦': {'win': 0}, '高圆圆': {'win': 2}}  电脑随机产生一个数:7  电脑随机产生一个数:1  周杰伦请猜一个数(按q结束):10  高圆圆请猜一个数(按q结束):1  周杰伦点数:18,高圆圆点数:9,结果:周杰伦获胜  {'周杰伦': {'win': 1}, '高圆圆': {'win': 2}}  电脑随机产生一个数:5  电脑随机产生一个数:7  周杰伦请猜一个数(按q结束):q  高圆圆请猜一个数(按q结束):q  end