Python实现猜年龄游戏代码实例


Posted in Python onMarch 25, 2020

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('现在进入猜年龄游戏环节.......\n')
  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('恭喜你!猜对了!\n')
      choice_prize()
      break

def choice_prize():
  count = 1
  print('进入抽奖环节.....,您共有两次机会!\n 奖品如下:')
  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}次机会!\n')
    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)()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现获取操作系统版本信息方法
Apr 08 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
利用Python爬取可用的代理IP
Aug 18 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
python实现Floyd算法
Jan 03 Python
Python3 JSON编码解码方法详解
Sep 06 Python
python爬虫容易学吗
Jun 02 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
超级实用的8个Python列表技巧
Aug 24 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
使用tensorflow 实现反向传播求导
May 26 Python
python读取mysql数据绘制条形图
Mar 25 #Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 #Python
python画环形图的方法
Mar 25 #Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 #Python
Python语法垃圾回收机制原理解析
Mar 25 #Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 #Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 #Python
You might like
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
详解Django admin高级用法
2019/11/06 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
用python制作个视频下载器
2021/02/01 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
班主任高考寄语
2015/02/26 职场文书
药房管理制度范本
2015/08/06 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL