写一个猜年龄游戏:

  1. 需要实现用户登录的功能

    • 初始用户登录信息为

      {'hades': '13579','nick': '123','ruixing': 'a1','fanping': 'b2'}

    • 登录时密码只能尝试三次

  2. 需要实现用户注册的功能

    • 注册时要判断用户名是否存在
  3. 可能会有用户会在输入年龄之后不小心输入空格,如18   ,请做处理

  4. 可能会有用户会恶意输入导致程序报错,如逗你玩呀,请做处理

  5. 如果用户3次没有猜对,可以选择继续玩或退出(自定义退出条件)

  6. 如果用户猜对了,可以在以下奖品中选择两件奖品(一次只能选择一件奖品):

    {0:'布娃娃',1:'变形金刚',2:'奥特曼',3:'《python从入门到放弃》'}

  7. 最后将用户的获奖信息统计输出

  8. 用户选择奖品后退出程序,用户也可以不选择奖品直接退出程序。



import time

import random

# 存储用户信息
user_info_dict = {'hades': '13579',
'nick': '123',
'ruixing': 'a1',
'fanping': 'b2'
}

# 注册
def register():
print(f'\n{"注册".center(50,"-")}') # 输入用户名
while True:
user_name = input("请输入用户名>>>").strip()
if user_name in user_info_dict:
print('用户名已存在,请重新注册')
continue # 输入密码
while True:
pwd = input('请输入你的密码>>>').strip()
pwd_again = input('请再次输入你的密码>>>') # 判断密码是否一致
if pwd != pwd_again:
print("两次密码输入不一致,请重新输入")
continue
else:
user_info_dict[user_name] = pwd
print('正在注册', end='')
for i in range(10):
print('>', end='')
time.sleep(0.5)
print("\n注册成功")
break
break

# 登录
def login():
print(f'\n{"登录游戏".center(50,"-")}') # 输入用户名
user_name = input('请输入用户名>>>').strip()
if user_name not in user_info_dict:
print('用户名不存在,请注册')
else: count = 0 # 判断密码是否正确
while count < 3: pwd = input('请输入你的密码>>>').strip()
if pwd != user_info_dict.get(user_name):
print('密码错误')
count += 1
else:
print('正在登录', end='')
for i in range(10):
print('>', end='')
time.sleep(0.5)
print('\n登录成功,载入游戏', end='')
for i in range(10):
print('>', end='')
time.sleep(1)
game()
break
if count == 3:
print('三次机会用完啦!!!')

# 发奖品
def award(): # 定义奖品
prize_dict = {0: '布娃娃',
1: '变形金刚',
2: '奥特曼',
3: '<Python从入门到放弃>'
} print(f'恭喜你猜对啦!你可以从如下奖品中选择两个奖品\n{prize_dict}\n')
prize_choice = input(f'是否需要奖品,需要请按"Y"/"y",否则直接退出>>>') # 判断是否拿奖品
if prize_choice == "Y" or prize_choice == "y":
count = 0
user_prize_dict = dict() # 用户选择奖品
while count < 2:
user_prize_choice = int(input('请输入奖品序号>>>').strip()) # 判断奖品是否存在
if user_prize_choice not in prize_dict:
print('你输入的奖品不存在,请重新选择~')
continue
prize = prize_dict[int(user_prize_choice)]
print(f"恭喜你获得了奖品--{prize}") # 将用户的获奖信息记录下来
if user_prize_dict.get(prize):
user_prize_dict[prize] += 1
else:
user_prize_dict[prize] = 1
count += 1
print(f"恭喜你获得了奖品{user_prize_dict}!!!")

# 进入游戏
def game():
print(f'\n{"开始猜年龄游戏".center(50,"-")}\n') age = random.randint(0,80) # 随机年龄 count = 0 # 统计玩的次数 while count < 3:
inp_age = input('请输入你猜的年龄>>>').strip() # 用户输入年龄 # 判断输入的是否是数字
if not inp_age.isdigit():
print('傻缺,输入数字知道不!!!')
continue inp_age_int = int(inp_age) # 核心逻辑
if inp_age_int == age:
award()
break
elif inp_age_int > age:
print('猜大了')
else:
print('猜小了')
count += 1 # 判断用户是否继续游戏
if count != 3:
continue
choice = input('菜鸡,三次机会用完喽~ \n是否还想玩,继续请按"y"/"Y",否则退出>>>').strip() if choice == "Y" or choice == "y":
count = 0
print(f'\n{"Game Over".center(50,"-")}\n')

# 开始游戏
def run():
# print(f'{"开始游戏".center(50,"-")}\n')
while True:
function_dict = {'1': '注册',
'2': '登录',
'3': '结束'
}
function_dict1 = {'注册': register,
'登录': login,
}
choice = input(f'请选择功能{function_dict}>>>').strip()
if choice == '3':
break
else:
function_dict1[function_dict[choice]]() if __name__ == '__main__':
run()

用python写了一个猜年龄小游戏的更多相关文章

  1. 初识python: while循环 猜年龄小游戏

    知识点: 1.python注释方法: 单行注释: # 多行注释: '''注释内容 '''  (单引号或双引号都可以),亦可打印多行 例: #此处是单行注释信息 print('这里是打印内容') #这里 ...

  2. python新手如何编写一个猜数字小游戏

    此文章只针对新手,希望大家勿喷,感谢!话不多说先上代码: import random if __name__ == '__main__': yourname = input("你好! 你的名 ...

  3. Python基础入门-实现猜数字小游戏

    今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我 ...

  4. Python3 猜年龄小游戏进阶之函数处理

    在猜年龄的基础上编写登录.注册方法,并且把猜年龄游戏分函数处理 登录函数 注册函数 猜年龄函数 选择奖品函数 # 注册 def register(): '''注册''' count = 0 while ...

  5. 用 Python 写个消消乐小游戏

    提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受欢迎程度可见一斑,本文我们使用 Python 来做个简单的消消乐小游戏. 很多人学习python,不 ...

  6. 初学python写个自娱自乐的小游戏

    一.摘要 当编写完后的代码执行第一次后达到了目标的预期效果,内心有些许满足,但是当突发情况产生后,程序便不能正常运行,于是准备从简单的版本开始出发,综合考虑使用者的需求,和使用过程中会遇到的问题,一步 ...

  7. python写的第一个简单小游戏-猜数字

    #Filename:game1.py guess=10 running=True while running: try: answer=int(raw_input('Guess what i thin ...

  8. 用canvas和原生js写的一个笨鸟先飞的小游戏(暂时只有一个关卡)

    其中一个画布背景是一张图片,还有小鸟,两个管子的图片.暂时不知道怎么附上去就不添加了.这里只有源代码,css和js都是在html写着的,感觉比他们的容易吧,hah <!DOCTYPE html& ...

  9. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

随机推荐

  1. JavaScript 解析读取XML文档 实例代码(转)

    JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readx ...

  2. 聚类-----KMeans

    package Spark_MLlib import org.apache.spark.ml.clustering.KMeans import org.apache.spark.sql.SparkSe ...

  3. 15_activity生命周期方法说明

    现在是可见并且可以被操作,所以现在是一个前台的Activity. 按一下Home键,它是先onPause然后onStop. 现在它就处于一个Stop停止的状态.停止的状态如果我当前内存够用的情况下,它 ...

  4. 服务器端解决ajax跨域问题

    这里描述以Tomcat为Web服务器情况下的解决办法,在Java Web程序的WEB-INF下的web.xml文件中加入如下配置即可. <!--cors filter--> <fil ...

  5. Linux 上安装 Node.js

    Linux 上安装 Node.js 直接使用已编译好的包(在个人阿里云服务器47.100.6.106上安装) Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使 ...

  6. bzoj 2165: 大楼【Floyd+矩阵乘法+倍增+贪心】

    1<<i的结果需要是long long的话i是long long是没用的--要写成1ll<<i--我别是个傻子吧 虽然写的是二进制贪心,但是我觉得二分可能更好写吧(但是会慢) ...

  7. loadrunner11 安装破解,汉化包

    说说自己的心痛史,好不容易安装了loadrunner 11 居然浏览器不支持,我的系统是win8.1,ie浏览器最低支持ie11,我还能说啥子...其他浏览器试过了依旧是不可以!!所以我安装了一个虚拟 ...

  8. 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement

    题目传送门 /* 题意:*的点占据后能顺带占据四个方向的一个*,问最少要占据多少个 匈牙利算法:按坐标奇偶性把*分为两个集合,那么除了匹配的其中一方是顺带占据外,其他都要占据 */ #include ...

  9. T-SQL编程以及常用函数

    1.索引添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引 2.视图 视图就是我们查询出来的虚拟表创建视图:create view 视图名 as SQL查询语句,分组,排序, ...

  10. Docker (1) 基本概念和安装

    Docker简介 什么是容器? 一种虚拟化的方案,操作系统级别的虚拟化.容器是一个轻量的.独立的.可执行的包,包含了执行它所需要的所有东西:代码.运行环境.系统工具.系统库.设置.很长一段时间中,容器 ...