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中AND、OR的一个使用小技巧
Feb 18 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
Python中的with语句与上下文管理器学习总结
Jun 28 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
pymysql的简单封装代码实例
Jan 08 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
pandas中DataFrame检测重复值的实现
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
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
新浪的图片新闻效果
2007/01/13 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python基于property()函数定义属性
2020/01/22 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
物流管理专业毕业生求职信
2014/03/23 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
企业法人代表证明书
2014/09/27 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
MySQL自定义函数及触发器
2022/08/05 MySQL