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
原文地址:https://www.cnblogs.com/michealjy/p/11298960.html