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实用技巧两则
Aug 29 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
初步讲解Python中的元组概念
May 21 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
Python3中的bytes和str类型详解
May 02 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
python3 property装饰器实现原理与用法示例
May 15 Python
python实现静态服务器
Sep 05 Python
Python ini文件常用操作方法解析
Apr 26 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
Python经常使用的一些内置函数
Apr 11 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高级编程-函数-郑阿奇
2011/07/04 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
php数据访问之增删改查操作
2016/05/09 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
JSON 数据格式介绍
2012/01/13 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
js实现表格字段排序
2014/02/19 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python如何获取系统iops示例代码
2016/09/06 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
python实现控制台打印的方法
2019/01/12 Python
Python基础之文件读取的讲解
2019/02/16 Python
如何在django中运行scrapy框架
2020/04/22 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
碧霞祠导游词
2015/02/09 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技