zoukankan      html  css  js  c++  java
  • 用python写了一个猜年龄小游戏

    写一个猜年龄游戏:

    1. 需要实现用户登录的功能

      • 初始用户登录信息为

        {'hades': '13579','nick': '123','ruixing': 'a1','fanping': 'b2'}

      • 登录时密码只能尝试三次

    2. 需要实现用户注册的功能

      • 注册时要判断用户名是否存在
    3. 可能会有用户会在输入年龄之后不小心输入空格,如18   ,请做处理

    4. 可能会有用户会恶意输入导致程序报错,如逗你玩呀,请做处理

    5. 如果用户3次没有猜对,可以选择继续玩或退出(自定义退出条件)

    6. 如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖品):

      {0:'布娃娃',1:'变形金刚',2:'奥特曼',3:'《python从入门到放弃》'}

    7. 最后将用户的获奖信息统计输出

    8. 用户选择奖品后退出程序,用户也可以不选择奖品直接退出程序。

    
    
    import time
    
    import random
    
    # 存储用户信息
    user_info_dict = {'hades': '13579',
                      'nick': '123',
                      'ruixing': 'a1',
                      'fanping': 'b2'
                      }
    
    
    
    # 注册
    def register():
        print(f'
    {"注册".center(50,"-")}')
    
        # 输入用户名
        while True:
            user_name = input("请输入用户名>>>").strip()
            if user_name in user_info_dict:
                print('用户名已存在,请重新注册')
                continue
    
            # 输入密码
            while True:
                pwd = input('请输入你的密码>>>').strip()
                pwd_again = input('请再次输入你的密码>>>')
    
                # 判断密码是否一致
                if pwd != pwd_again:
                    print("两次密码输入不一致,请重新输入")
                    continue
                else:
                    user_info_dict[user_name] = pwd
                    print('正在注册', end='')
                    for i in range(10):
                        print('>', end='')
                        time.sleep(0.5)
                    print("
    注册成功")
                    break
            break
    
    
    
    # 登录
    def login():
        print(f'
    {"登录游戏".center(50,"-")}')
    
        # 输入用户名
        user_name = input('请输入用户名>>>').strip()
        if user_name not in user_info_dict:
            print('用户名不存在,请注册')
        else:
    
            count = 0 
            
            # 判断密码是否正确
            while count < 3:
    
                pwd = input('请输入你的密码>>>').strip()
                if pwd != user_info_dict.get(user_name):
                    print('密码错误')
                    count += 1
                else:
                    print('正在登录', end='')
                    for i in range(10):
                        print('>', end='')
                        time.sleep(0.5)
                    print('
    登录成功,载入游戏', end='')
                    for i in range(10):
                        print('>', end='')
                        time.sleep(1)
                    game()
                    break
                if count == 3:
                    print('三次机会用完啦!!!')
    
    
    
    # 发奖品
    def award():
    
        # 定义奖品
        prize_dict = {0: '布娃娃',
                      1: '变形金刚',
                      2: '奥特曼',
                      3: '<Python从入门到放弃>'
                      }
    
        print(f'恭喜你猜对啦!你可以从如下奖品中选择两个奖品
    {prize_dict}
    ')
        prize_choice = input(f'是否需要奖品,需要请按"Y"/"y",否则直接退出>>>')
    
        # 判断是否拿奖品
        if prize_choice == "Y" or prize_choice == "y":
            count = 0
            user_prize_dict = dict()
    
            # 用户选择奖品
            while count < 2:
                user_prize_choice = int(input('请输入奖品序号>>>').strip())
    
                # 判断奖品是否存在
                if user_prize_choice not in prize_dict:
                    print('你输入的奖品不存在,请重新选择~')
                    continue
                prize = prize_dict[int(user_prize_choice)]
                print(f"恭喜你获得了奖品--{prize}")
    
                # 将用户的获奖信息记录下来
                if user_prize_dict.get(prize):
                    user_prize_dict[prize] += 1
                else:
                    user_prize_dict[prize] = 1
                count += 1
            print(f"恭喜你获得了奖品{user_prize_dict}!!!")
    
    
    
    # 进入游戏
    def game():
        print(f'
    {"开始猜年龄游戏".center(50,"-")}
    ')
    
        age = random.randint(0,80)  # 随机年龄
    
        count = 0  # 统计玩的次数
    
        while count < 3:
            inp_age = input('请输入你猜的年龄>>>').strip()  # 用户输入年龄
    
            # 判断输入的是否是数字
            if not inp_age.isdigit():
                print('傻缺,输入数字知道不!!!')
                continue
    
            inp_age_int = int(inp_age)
    
            # 核心逻辑
            if inp_age_int == age:
                award()
                break
            elif inp_age_int > age:
                print('猜大了')
            else:
                print('猜小了')
            count += 1
    
            # 判断用户是否继续游戏
            if count != 3:
                continue
            choice = input('菜鸡,三次机会用完喽~ 
    是否还想玩,继续请按"y"/"Y",否则退出>>>').strip()
    
            if choice == "Y" or choice == "y":
                count = 0
        print(f'
    {"Game Over".center(50,"-")}
    ')
    
    
    
    # 开始游戏
    def run():
        # print(f'{"开始游戏".center(50,"-")}
    ')
        while True:
            function_dict = {'1': '注册',
                             '2': '登录',
                             '3': '结束'
                             }
            function_dict1 = {'注册': register,
                              '登录': login,
                              }
            choice = input(f'请选择功能{function_dict}>>>').strip()
            if choice == '3':
                break
            else:
                function_dict1[function_dict[choice]]()
    
    
    if __name__ == '__main__':
        run()
    
    
    
    
  • 相关阅读:
    Windows下对函数打桩,及Linux类似技术
    WIN10重启后,在任务栏下添加快捷工具栏消失问题修复
    VS2012下std::function的BUG解决办法
    【转载】inno setup 水波纹效果,检测安装vcredist_x86.exe等
    ArchLinux下XFCE的一个问题修复:thunar加载的环境变量不正确
    Daliy Algorithm (GPLT)-- day 94
    Daliy Algorithm (greedy , hash )-- day 93
    Daliy Algorithm (tarjan, greedy, bfs )-- day 92
    Daliy Algorithm (heap,greedy , IQ )-- day 91
    Daliy Algorithm (cf , GPLT )-- day 90
  • 原文地址:https://www.cnblogs.com/Hades123/p/10923246.html
Copyright © 2011-2022 走看看