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遍历目录的4种方法实例介绍
Apr 13 Python
Python fileinput模块使用实例
May 28 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
深入理解Python中变量赋值的问题
Jan 12 Python
对python 中class与变量的使用方法详解
Jun 26 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
解决Mac下使用python的坑
Aug 13 Python
PyTorch中的Variable变量详解
Jan 07 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
pytorch--之halfTensor的使用详解
May 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中如何防止表单的重复提交
2013/08/02 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
深入解析Python中的线程同步方法
2016/06/14 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
学术会议欢迎词
2014/01/09 职场文书
材料加工工程求职信
2014/02/19 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
改造DE1103三步曲
2022/04/07 无线电