利用Python实现scissors-rock-paper-lizard-Spock小游戏
文章目录
- 1.需要使用的库:
- 2.具体代码:
- 3.完整代码
- 4.玩两把!!!
两个熟识的人玩普通的石头、剪子、布游戏有75%至80%的几率两人出一样的手势,所以为了减少游戏的平局概率,山姆和卡伦发明了“石头、剪子、布、蜥蜴、斯波克”。石头、剪子、布的手势和通俗猜拳游戏基本一致,蜥蜴的手势为一个蜥蜴面部的手势,而斯波克的手势则为著名的瓦肯举手礼。
游戏规则如下:
剪刀剪布;
布包石头;
石头砸死蜥蜴;
蜥蜴毒死Spock;
Spock踩碎剪子;
剪子刺死蜥蜴;
蜥蜴吃掉布;
论文(布paper,在英文中也有论文的意思)证明Spock不存在;
Spock融化石头;
石头砸碎剪子。
具体实现代码如下:
1.需要使用的库:
import random
在人机对战时,使用random库中的randint函数为人机生成一个选项。
2.具体代码:
首先选择pvp还是pve:
choice = input('please choose battle mode, 1--pvp 2--pve:')
如果选择了pvp,则创建两个变量op1和op2分别接受两个玩家的选项,这里使用int类型而不适用str类型,是因为等会在写逻辑表达式的时候,可以省略引号,必较方便。
if choice == '1':op1 = int(input('''playerA, what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))op2 = int(input('''playerB, what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))
根据上面的规则,如果玩家A胜利,则有以下五种情况:
①玩家A出剪刀,玩家B出布或蜥蜴
②玩家A出石头,玩家B出剪刀或蜥蜴
③玩家A出布,玩家B出石头或Spock
④玩家A出蜥蜴,玩家B出Spock或布
⑤玩家A出Spock,玩家B出石头或剪子
if (op1 == 1 and (op2 == 3 or op2 == 4)) or (op1 == 2 and (op2 == 1 or op2 == 4)) or (op1 == 3 and (op2 == 2 or op2 == 5)) or (op1 == 4 and (op2 == 3 or op2 == 5)) or (op1 == 5 and (op2 == 1 or op2 == 2)):print('playerA win!')
如果两个玩家选项相同,则平局:
elif op1 == op2:print('even!')
否则,玩家B胜利:
else:print('playerB win!')
如果选择了pve模式,则只需接受一个玩家的选项:
elif choice == '2':man = int(input('''what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))
为计算机生成一个选项:
computer = random.randint(1,5)print(f"the computer's choice is:{computer}")
判断输赢的方法与pvp时相同,这里不再赘述。
3.完整代码
import random
choice = input('please choose battle mode, 1--pvp 2--pve:')
if choice == '1':op1 = int(input('''playerA, what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))op2 = int(input('''playerB, what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))if (op1 == 1 and (op2 == 3 or op2 == 4)) or (op1 == 2 and (op2 == 1 or op2 == 4)) or (op1 == 3 and (op2 == 2 or op2 == 5)) or (op1 == 4 and (op2 == 3 or op2 == 5)) or (op1 == 5 and (op2 == 1 or op2 == 2)):print('playerA win!')elif op1 == op2:print('even!')else:print('playerB win!')
elif choice == '2':man = int(input('''what is your choice?1--scissor 2--stone 3--paper 4--lizard 5--spock
your choice is:'''))computer = random.randint(1,5)print(f"the computer's choice is:{computer}")if (man == 1 and (computer == 3 or computer == 4)) or (man == 2 and (computer == 1 or computer == 4)) or (man == 3 and (computer == 2 or computer == 5)) or (man == 4 and (computer == 3 or computer == 5)) or (man == 5 and (computer == 1 or computer == 2)):print('player win!')elif man == computer:print('even!')else:print('computer win!')
4.玩两把!!!
第一把,看似是pvp,实际上只有我一个人。
第二把,pve,电脑运气更好,我输了。
看生活大爆炸时听见Sheldon提过这个游戏,觉得还蛮有意思的,就像能不能用代码实现,于是就写了这个小游戏,没什么用哈哈哈哈哈,但是也算完成了自己的一个小想法吧。
如果你有什么改进的方法,请指出来,我将感激不尽;如果这篇文章能帮助到你,我更将不胜荣幸。
利用Python实现scissors-rock-paper-lizard-Spock小游戏相关推荐
- 利用Python做一个简单的对战小游戏
利用Python做一个简单的文字对战小游戏 一.游戏介绍 1.大体介绍:文字版的对战小游戏,可以利用Python随机生成两个角色,角色带有各自的血量和攻击值两个指标.两人在对战时同时攻击对方,同时造成 ...
- python爬虫的使用——成语接龙小游戏
python爬虫的使用--成语接龙小游戏 游戏介绍 本游戏采用python进行开发,利用爬虫技术,能够自动获取代理服务器IP地址,可从常用汉字中选取查找成语随机出题,可进行人与电脑的对弈,可进行多轮较 ...
- python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...
原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...
- python写一个游戏多少代码-使用50行Python代码从零开始实现一个AI平衡小游戏
集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何用 50 行 Python 代码创建一个 AI,使用增强学习技术,玩耍一个保持杆子平衡的小游戏.所用环境为标准的 OpenAI Gym, ...
- PYTHON pygame库实战——实现双人弹球小游戏
PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...
- Python四行代码实现的猜数字小游戏,基于thinker,带GUI界面
Python四行代码实现的猜数字小游戏,基于thinker,带GUI界面 from tkinter import * from tkinter import messagebox 导入提示框 from ...
- [Python] 黑白棋(翻转棋)小游戏
[Python] 黑白棋(翻转棋)小游戏 游戏介绍 黑白棋(Reversi or Othello)在西方和日本很流行.游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负. 规则 黑白棋的每颗 ...
- 一行python代码,带你重温经典小游戏
点击上方「蓝字」关注我们 各位新老朋友们: 大家好,我是菜鸟小白.欢迎大家关注"菜鸟小白的学习分享"公众号,菜鸟小白作为一名软件测试工程师,会定期给大家分享一些测试基础知识.测试环 ...
- 50行python游戏代码_使用50行Python代码从零开始实现一个AI平衡小游戏
使用50行Python代码从零开始实现一个AI平衡小游戏 发布时间:2020-10-23 09:26:14 来源:脚本之家 阅读:74 集智导读: 本文会为大家展示机器学习专家 Mike Shi 如何 ...
- java游戏循环_利用Java循环语句实现攻击防御塔小游戏
/* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...
最新文章
- fatal error: Python.h: No such file or directory 解决
- Maven 版 JPA 最佳实践(转)
- 如何版本化你的API?--转
- python之.py生成.exe可执行文件
- linux驱动编写(虚拟字符设备编写)
- python矩阵所有元素取整_Python主要逻辑基础与处理
- 小程序wafer2操作数据库
- SQL Server 2008入门系列之设置数据库服务器的访问权限
- 数字信号处理实验(六)——FIR滤波器的设计
- [置顶] woff格式字体怎么打开和编辑?
- 从技术问题变成RPWT -----------------猛禽
- linux下制作dos启动u盘启动,在Linux系统下创建FreeDOS可启动U盘
- 千兆路由器怎么设置网速最快_安装了千兆路由器,为什么下载速度很慢?
- css rgb转16进制,jquery获取元素颜色css('color')的值返回RGB。如何转十六进制
- 京东云对话Cloudflare:畅谈更懂产业的云与未来科技趋势
- windows多用户“同时”远程连接
- Docker制作base镜像
- 本穷鬼攒的一台用于深度学习用电脑
- 下载漫画网站图片示例
- (二)admin-boot项目之整合mybatis-plus