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 11 Python
Python3字符串学习教程
Aug 20 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
tensorflow模型转ncnn的操作方式
May 25 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
python 制作网站筛选工具(附源码)
Jan 21 Python
python通配符之glob模块的使用详解
Apr 24 Python
实操Python爬取觅知网素材图片示例
Nov 27 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模板之Phpbean的目录结构
2008/01/10 PHP
apache rewrite_module模块使用教程
2008/01/10 PHP
php实现的漂亮分页方法
2014/04/17 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
asp 的 分词实现代码
2007/05/24 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
最美孝心少年事迹材料
2014/08/15 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
店铺转让协议书
2015/01/29 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js
Nginx利用Logrotate实现日志分割
2022/05/20 Servers