案例:python玩21点

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

相关文章