写一个猜年龄游戏:

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

    • 初始用户登录信息为

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

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

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

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

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

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

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

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

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

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

  1. import time
  2. import random
  3. # 存储用户信息
  4. user_info_dict = {'hades': '13579',
  5. 'nick': '123',
  6. 'ruixing': 'a1',
  7. 'fanping': 'b2'
  8. }

  1. # 注册
  2. def register():
  3. print(f'\n{"注册".center(50,"-")}')
  4. # 输入用户名
  5. while True:
  6. user_name = input("请输入用户名>>>").strip()
  7. if user_name in user_info_dict:
  8. print('用户名已存在,请重新注册')
  9. continue
  10. # 输入密码
  11. while True:
  12. pwd = input('请输入你的密码>>>').strip()
  13. pwd_again = input('请再次输入你的密码>>>')
  14. # 判断密码是否一致
  15. if pwd != pwd_again:
  16. print("两次密码输入不一致,请重新输入")
  17. continue
  18. else:
  19. user_info_dict[user_name] = pwd
  20. print('正在注册', end='')
  21. for i in range(10):
  22. print('>', end='')
  23. time.sleep(0.5)
  24. print("\n注册成功")
  25. break
  26. break

  1. # 登录
  2. def login():
  3. print(f'\n{"登录游戏".center(50,"-")}')
  4. # 输入用户名
  5. user_name = input('请输入用户名>>>').strip()
  6. if user_name not in user_info_dict:
  7. print('用户名不存在,请注册')
  8. else:
  9. count = 0
  10. # 判断密码是否正确
  11. while count < 3:
  12. pwd = input('请输入你的密码>>>').strip()
  13. if pwd != user_info_dict.get(user_name):
  14. print('密码错误')
  15. count += 1
  16. else:
  17. print('正在登录', end='')
  18. for i in range(10):
  19. print('>', end='')
  20. time.sleep(0.5)
  21. print('\n登录成功,载入游戏', end='')
  22. for i in range(10):
  23. print('>', end='')
  24. time.sleep(1)
  25. game()
  26. break
  27. if count == 3:
  28. print('三次机会用完啦!!!')

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

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

  1. # 开始游戏
  2. def run():
  3. # print(f'{"开始游戏".center(50,"-")}\n')
  4. while True:
  5. function_dict = {'1': '注册',
  6. '2': '登录',
  7. '3': '结束'
  8. }
  9. function_dict1 = {'注册': register,
  10. '登录': login,
  11. }
  12. choice = input(f'请选择功能{function_dict}>>>').strip()
  13. if choice == '3':
  14. break
  15. else:
  16. function_dict1[function_dict[choice]]()
  17. if __name__ == '__main__':
  18. 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. 【USACO 2010FEB】 slowdown

    [题目链接] 点击打开链接 [算法] dfs序 + 线段树 树链剖分同样可以解决这个问题 [代码] #include<bits/stdc++.h> using namespace std; ...

  2. 【HDU 1588】 Gauss Fibonacci

    [题目链接] 点击打开链接 [算法] 要求 f(g(0)) + f(g(1)) + f(g(2)) + ... + f(g(n-1)) 因为g(i) = k * i + b 所以原式 = f(b) + ...

  3. [入门帮助] Kafka入门经典教程

    问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有 ...

  4. Commons IO 2.5-IOUtils

    转自:http://blog.csdn.net/zhaoyanjun6/article/details/55051917 福利另外我已经把Commons IO 2.5的源码发布到Jcenter,大家就 ...

  5. cURL模拟HTTP请求(支持HTTPS)

    function setHttpRequest($url,$headers,$params=array(),$method="GET") { $ci = curl_init(); ...

  6. java HashMap和LinkedHashMap区别

    我们用的最多的是HashMap,在Map 中插入.删除和定位元素,HashMap 是最好的选择.但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好.如果需要输出的顺序和输入的相同,那么用 ...

  7. C++函数重载的4种错误示例

    函数重载的4种错误示例: #include <iostream> #include <string> using namespace std; //函数重载 同函数名,函数重载 ...

  8. EditText(2)自定义回车键的行为

    1,在android:imeOptions属性中指定要自定义的行为. 系统中有很多行为,如:搜索,完成,下一步等:actionSend,actionGo,actionNext等.下面EditText名 ...

  9. Spring抽象JDBC,使用JdbcTemplate

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. DataGridView 动态绑定 CheckBox

    下面演示如何在 DataGridView 中动态绑定 CheckBox: public class Test { /// <summary> /// 构造器 /// </summar ...