案例:python玩21点

发布时间:2019-07-17 10:08:44编辑:auto阅读(1553)

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

关键字