zoukankan      html  css  js  c++  java
  • 猜年龄游戏函数版

    '''
    1. 在猜年龄的基础上编写登录、注册方法,并且把猜年龄游戏分函数处理,如
       2. 登录函数
       3. 注册函数
       4. 猜年龄函数
       5. 选择奖品函数
    '''
    import json
    real_age = 18
    prize_list = ['好迪洗发水', '绿箭侠', '小猪佩奇', '布娃娃', '再来一次!']
    import random
    user_prize_dict = {}
    import os
    
    def register():
        while True:
            username = input('输入用户名>>>(q退出):').strip().lower()
            if username=='q':break
            password = input('请输入密码>>>:').strip()
            re_password = input('请再次确认密码>>>:').strip()
            if not password == re_password:
                print('密码不一致,请重输!')
                continue
            user_dic = {'name': username, 'password': password}
            json_user_dic = json.dumps(user_dic)
            with open(f"{username}.txt", 'w', encoding='utf-8')as f:
                f.write(json_user_dic)
                f.flush()
                print('注册成功!')
                break
    
    def login():
        count = 0
        while True:
            if count == 3:
                print('错误输入次数过多!')
                break
            username = input('请输入用户名>>>:').strip()
            if not os.path.exists(username + '.txt'):
                print('该用户不存在!')
                continue
            password = input('请输入密码>>>:').strip()
            with open(f"{username}.txt", 'r', encoding='utf-8') as f:
                user_json_dic = f.read()
                user_dic = json.loads(user_json_dic)
                if username == user_dic['name'] and password == user_dic['password']:
                    print('登录成功!')
                    guess_age()
                    break
                else:
                    print('用户名或密码错误!')
            count += 1
    
    def guess_age():
        count = 0
        print('现在进入猜年龄游戏环节.......
    ')
        while True:
            count += 1
            if count == 4:
                print('抱歉!你三次都猜错了!')
                again_guess_age = input('请问是否要继续猜3次(y继续,n退出)>>>:').strip().lower()
                if again_guess_age == 'y':
                    count = 0
                    continue
                break
            age = input('请输入你的年龄>>>:').strip()
            if not age.isdigit():
                print('请输入纯数字!')
                continue
    
            age = int(age)
            if age > real_age:
                print('猜大了!')
            elif age < real_age:
                print('猜小了!')
            else:
                print('恭喜你!猜对了!
    ')
                choice_prize()
                break
    
    def choice_prize():
        count = 1
        print('进入抽奖环节.....,您共有两次机会!
     奖品如下:')
        while True:
            for index, prize in enumerate(prize_list, 1):
                print(index, prize)
            choice = input('请按下按钮y随机选择奖品>>>:').strip().lower()
            if not choice == 'y':
                print('非法输入!')
                continue
            prize_choice = random.randint(1, 15)
            if prize_choice in [6, 7, 8]:
                prize_choice = 4
            elif prize_choice in [9, 10, 11, 12, 13, 14, 15]:
                prize_choice = 5
            prize = prize_list[prize_choice - 1]
            if prize in user_prize_dict:
                user_prize_dict[prize] += 1
            else:
                user_prize_dict[prize] = 1
            print(f'本次获得奖品为:{prize},您还有{2-count}次机会!
    ')
            if count == 2:
                if user_prize_dict.get('再来一次!'):
                    user_prize_dict.pop('再来一次!')
                print(f'总共获得的奖品为:{user_prize_dict}')
                break
            count += 1
    
    
    user_func_dic = {
        '1': register,
        '2': login,
    }
    while True:
        print('''
            先注册,登陆后才能玩猜年龄游戏哦!
            1. 注册
            2. 登录
        '''
              )
        choice = input('请选择功能编号(q退出)>>>:').strip().lower()
        if choice == 'q' : break
        if not choice in user_func_dic:
            print('错误输入')
            continue
        user_func_dic.get(choice)()
  • 相关阅读:
    菱形继承问题
    类的组合
    类的派生
    EasyUI的columns中列标题居中
    C#的一般处理程序中Cookie的写入、读取、清除
    JS中设置input的type="radio"默认选中
    SQL Server 分页语句查询
    CSS中设置字体样式
    C#清空StringBuilder的三种方法
    EasyUI在子tab基础上再打开新的tab标签页
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/11552787.html
Copyright © 2011-2022 走看看