• Python基础实战之猜年龄游戏


    '''
    用户需要先输入正确的用户名和密码,登录成功后即可进行游戏
    注意:
        用户名或者密码输入三次失败,则退出
        如果用户输错两次密码/用户名,则提示是否需要修改密码/用户名
        输入正确密码后显示倒计时,然后登录成功进入游戏
    1.给定年龄,用户可以猜三次年龄
    2.年龄猜对,让用户选择两次奖励
    3.用户选择两次奖励后可以退出
    4.可能会有用户会在输入年龄之后不小心输入空格,如18  ,请做处理
    5.可能会有用户会恶意输入导致程序报错,如`逗你玩呀`,请做处理
    6.如果用户3次没有猜对,可以选择继续玩或退出(自定义退出条件)
    7.如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖
    品):['buwawa','bianxingjingang','aoteman','《python从入门到放弃》']
    8.用户选择奖品后退出程序,用户也可以不选择奖品直接退出程序。
    '''
    #正确的密码和用户名
    import time
    username = ['admin']
    password = ['nick12345']
    count_pwd = 0
    count_use = 0
    #正确的年龄答案
    age_answer = 34
    count_age = 0
    prize_age = ['toy', 'transformers', 'aotuman', '《撩妹秘笈》'] #列表盛装奖品
    
    ##登录功能
    while count_pwd < 3 and count_use < 3:
        admin_inp = input("*******************
    请输入用户名:")
        if admin_inp == username[0]:
            password_inp = input('请输入密码:')
            if password_inp == password[0]:
                # print('Loading', end='')
                for i in range(6):##登录过程中出现倒计时标志
                    if i==5:
                        print('
    登录成功')
                    else:
                        print('
    ',(5-i),end='')
                    time.sleep(0.8)
                print('游戏开始')
                while count_age < 3:
                    age_inp = input('请输入小姑娘的年龄:')
                    if not age_inp.strip('').isdigit():
                        break
                    elif int(age_inp) == age_answer:
                        prize_re = input("是否需要礼物?不需要请输入'N'或者'n':")
                        if prize_re != 'N' and prize_re != 'n':
                            for i in range(2):
                                prize_num = input("请输入你需要的礼物编号:")
                                print(prize_age[int(prize_num)])
                            break
                        break
                    elif int(age_inp) > age_answer:
                        print('猜大了!')
                        count_age += 1
                        continue
                    elif int(age_inp) < age_answer:
                        print('猜小了')
                        count_age += 1
                        continue
                    else:
                        count_age += 1
                        if count_age != 3:
                            continue
                        age_inp = input("要不要再来一局?是请输入'Y'或者'y',按其他键退出:")
                        if age_inp == 'Y' or age_inp == 'y':
                            count_age = 0
                            continue
                        break
            else:
                print('密码输入错误')
                count_pwd += 1
                if count_pwd == 2:
                    pwd_re = input("是否需要修改密码?是请输入'Y'或者'y': ")
                    if pwd_re == 'Y' or pwd_re == 'y':
                        pwd_ch =input('请输入新密码:')
                        password.insert(1,pwd_ch)
                        password.pop(0)
                        password = password
                    continue
                continue
        else:
            print('用户名输入错误')
            count_use += 1
            if count_use == 2:
                username_re = input("是否需要修改用户名?是请输入'Y'或者'y': ")
                if username_re == 'Y' or username_re == 'y':
                    username_ch = input('请输入新用户名:')
                    username.insert(1, username_ch)
                    username.pop(0)
                    username = username
                continue
            continue
        break
    
  • 相关阅读:
    JavaScript对象的几种创建方式?
    TCP 三次握手,四次挥手
    常用的状态码
    前后端分离的接口规范
    京东架构师:日均 5 亿查询量的ElasticSearch架构如何设计?
    [转] 谈谈Spring中都用到了那些设计模式?
    [转]Post和Get的区别
    [转]17个常用的JVM参数
    从入门到熟悉HTTPS的9个问题
    布式事务和解决方案理论
  • 原文地址:https://www.cnblogs.com/michealjy/p/11298960.html
Copyright © 2020-2023  润新知