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利用beautifulSoup实现爬虫
Sep 29 Python
详解Python多线程
Nov 14 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
python编程嵌套函数实例代码
Feb 11 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
python 画函数曲线示例
Dec 04 Python
flask框架自定义url转换器操作详解
Jan 25 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
浅析python中特殊文件和特殊函数
Feb 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
Javascript - HTML的request类
2007/01/09 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
jQuery中$原理实例分析
2018/08/13 jQuery
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
Django Form常用功能及代码示例
2020/10/13 Python
Pandas之缺失数据的实现
2021/01/06 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
Oracle的内存结构(Memory structures)
2015/06/10 面试题
机电一体化专业应届生求职信
2013/11/27 职场文书
校园环保建议书
2014/05/14 职场文书
物业管理专业自荐信
2014/07/01 职场文书
党课心得体会范文
2014/09/09 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏