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入门者的一些编程建议
Jun 15 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python的文件操作方法汇总
Nov 10 Python
python处理数据,存进hive表的方法
Jul 04 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
python多线程扫描端口(线程池)
Sep 04 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
20行Python代码实现视频字符化功能
Apr 13 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
Django+Celery实现定时任务的示例
Jun 23 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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读取MySQL数据代码
2008/06/05 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
Python selenium 三种等待方式解读
2016/09/15 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
shell程序中如何注释
2012/02/17 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
业务部经理岗位职责
2014/01/04 职场文书
《雷雨》教学反思
2014/02/20 职场文书
单位承诺书格式
2014/05/21 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
实施意见格式范本
2015/06/05 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
Golang 对es的操作实例
2022/04/20 Golang
css弧边选项卡的项目实践
2023/05/07 HTML / CSS