Python零基础入门篇 - 64 - 小案例 - 猜拳游戏与数字猜猜猜
无题 |
---|
🎉 三载辛苦缘离别,今兮说与山鬼听。 🎉 |
🎉 惊觉山鬼不识字,西风难寐不动情。 🎉 |
前言:
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的有一只哈士奇)
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
📕 系列专栏:
👍 Python全栈系列 - [更新中] 【 本文在该系列】
🍎 Python零基础入门篇
👋 网安之路系列
🍋 网安之路踩坑篇
🍋 网安知识扫盲篇
🍋 Vulhub 漏洞复现篇
🍋 Shell脚本编程篇
🍋 Web攻防篇 2021年9月3日停止更新,转战先知等安全社区
🍋 渗透工具使用集锦 2021年9月3日停止更新,转战先知等安全社区
⭐️ 点点点工程师系列
🍹 测试神器 - Charles 篇
🍹 测试神器 - Fiddler 篇
🍹 测试神器 - Jmeter 篇
🍹 自动化 - RobotFrameWork 系列
🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
文章目录
-
- 猜拳小游戏
- 数字猜猜猜小游戏
至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜数字的游戏。
猜拳小游戏
需求:
运用至今所学的 Python 知识编写脚本,实现一个人与计算机玩猜拳的石头剪刀布的小游戏。
这里我们先思考一下,如果将石头、剪刀、布分别用数字0、1、2表示,那么如何判定谁胜谁负呢?
user | robot | 结果 |
---|---|---|
0(石头) | 0(石头) | 平局 |
0(石头) | 1(剪刀) | user 获胜 |
0(石头) | 2(布) | robot 获胜 |
1(剪刀) | 0(石头) | robot 获胜 |
1(剪刀) | 1(剪刀) | 平局 |
1(剪刀) | 2(布) | user 获胜 |
2(布) | 0(石头) | user 获胜 |
2(布) | 1(剪刀) | robot 获胜 |
2(布) | 2(布) | 平局 |
不难发现游戏的规律如下:
- 如果user和computer相等就是平局
- 如果用 (user+1) 除以 3 得到的余数与 robot 相等,就是user(人)获得胜利
- 其余情况都是 robot 获胜
案例脚本如下:
# coding:utf-8import random# TODO:只针对输入的参数做了 int 的排除,未针对输入的 非 int 类型做校验,可通过 isNum 函数做校验,或者进行 异常捕获。data = {0: '石头', 1: '剪刀', 2: '布'}while(True): robot = random.randint(0, 2) print('猜拳小游戏即将开始,请准备!') user = int(input('请输入[0:石头;1:剪刀;2:布;9:退出游戏]:')) if user not in (9, 0, 1, 2): print('--------输入参数不合法,请重新输入!--------') print(' ') continue elif user == 9: print('游戏结束,下次再来玩哦') break elif not 0 <= user <= 2: continue if user == robot: print('\'你\'出的是{}, \'ROBOT\' 出的是{}, 结果为:\'平局\''.format(data[user], data[robot])) print(' ') elif (user + 1) % 3 == robot: print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'你赢了!\''.format(data[user], data[robot])) print(' ') else: print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'ROBOT赢了!\''.format(data[user], data[robot])) print(' ')
PS:这里的传入参数校验并不完善,大家可以尝试自己动手完善一下。

数字猜猜猜小游戏
需求:
根据现实生活中的猜数字游戏的游戏规则,运用Python语言模拟实现猜数字游戏的的基本功能.
1、设定可猜测的次数,并根据提示进行数字区间的输入猜测的数字
2、将输入的数字与随机生成的数字进行比对,同时次数减一。若次数用完后,仍未猜对,则游戏结束。
案例脚本如下:
# coding:utf-8import random# TODO:这并不是我想要的效果,但是目前也只能写成这样了,有时间再晚上吧。robot = random.randint(1, 10)count = 5print("*游戏开始*")print("猜数字游戏,数字在1到10之间,你有{0}次机会".format(count))print(' ')while count > 0: num = input("请输入您要猜测的数字:") if num.isdigit(): num = int(num) if num == robot: print("对了") print(' ') break elif num < robot: # print("您输入的参数小了", '剩余机会次数:%s' % int(count-1)) print("您输入的参数小了", '剩余机会次数:{0}'.format(count-1)) print(' ') else: print("您输入的参数大了", '剩余机会次数:{0}'.format(count-1)) print(' ') count -= 1 if count == 0: print("您的机会已经用完") print(' ') break # print("你还剩余{0}次机会".format(count)) # print(' ') else: print("你输入的不是一个数字,请重新输入") print(' ')print("游戏结束")

字库吧