案例:python玩21点
- 两个玩家,游戏开始先输入名字
- 用字典保存每个玩家信息:姓名,获胜次数
- 电脑随机产生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