选择与循环:剪刀石头布_python项目:剪刀石头布游戏
一、明确项目
和电脑玩一个剪刀石头布的游戏:电脑随机出拳,我们可选择出什么。
二、拆解项目
2.1 双方出拳
- 首先,我们要让双方选择出拳,才能判断胜负。
- 我们可以设置变量computer_choice代表电脑的出拳选择,设置变量user_choice代表你的出拳选择。
- 电脑的出拳,我们可以使用random.choice()来随机选择;我们的出拳,可以手动输入我们出拳的类型。
- 另外,判断下输入:当输入的内容不是石头剪刀布时,电脑会提醒'输入有误,请重新出拳',并重新出拳。
2.2 双方亮拳
- 使用print()函数打印出双方出拳结果
2.3 输出战斗结果
- 罗列平局,输局,赢局对应的情况,定义逻辑判断函数
- 打印出战斗结果
三、逐步执行,代码实现
- 根据项目拆解情况,给出初级代码
- 代码优化:用函数封装代码,便于后续增删改
- 功能优化:增加一个游戏重复的小功能
最终代码:
import random,time# 变量key代表循环运行程序的开关
key=1#采集双方出拳信息的函数
def myinput():punches=['石头','剪刀','布']computer_choice=random.choice(punches) #电脑出拳user_choice=input('有三种出拳类型:石头,剪刀,布,请输入你的出拳类型:') #用户出拳while user_choice not in punches:print('输入有误,请重新出拳')user_choice=input('有三种出拳类型:石头,剪刀,布,请输入你的出拳类型:') #用户出拳return computer_choice,user_choice# 这里返回的数据是一个元组#判断输赢逻辑函数
def match(my_input):# 把元组中的数据取出来computer_choice=my_input[0]user_choice=my_input[1]# 双方亮拳print('————战斗过程————')time.sleep(1)print('你出拳:%s' %(user_choice))time.sleep(1)print('我出拳:%s' %(computer_choice))time.sleep(1)# 战斗结果print('—————结果—————')if user_choice == computer_choice: # 使用if进行条件判断print('平局!')# 电脑的选择有3种,索引位置分别是:0石头、1剪刀、2布。# 假设在电脑索引位置上减1,对应:-1布,0石头,1剪刀,皆胜。elif user_choice == punches[punches.index(computer_choice)-1]:print('你赢了!')else:print('你输了!')#多次重复函数
def again():# 声明全局变量key,以便修改该变量global keya=input('是否继续?继续请输入1,输入其他键将结束程序。')if a!='1':key=0#主函数
def main():print('欢迎来和我玩石头剪刀布的游戏!')while key==1:my_input=myinput()match(my_input)again()print('谢谢你和我一起玩,再见')#调用主函数
main()
学习时间:3月30日
选择与循环:剪刀石头布_python项目:剪刀石头布游戏相关推荐
- python制作动态小游戏_Python——项目-小游戏2-动画绘制
实现游戏循环还有事件的监听 在上一讲中 你需要完成这样的这样的效果, 如果你还没有完成,请不要继续往下阅读!!切记切记切记.,重要的事情说三遍 我们来看一下什么是游戏循环 所谓的游戏循环很好的理解 就 ...
- 选择与循环:剪刀石头布_Python之石头剪刀布小游戏(史上最详细步骤)
嗨,各位好呀,我是真小凡. 相信你如果是一个刚学习Python的小白,一定会很想做一个自己的Python小游戏(我就是这样子的),那么今天我们就一起实操一下! 首先要清楚,做一个项目必须的流程是什么 ...
- python清华大学出版社第三章课堂作业的答案_Python程序设计清华大学出版社董付国第3章选择与循环题库.ppt...
3.5 综合运用 例2:输出序列中的元素. a_list=['a', 'b', 'mpilgrim', 'z', 'example'] for i,v in enumerate(a_list): pr ...
- python的for语句条件_Python中的条件选择和循环语句
Python中的条件选择和循环语句 同C语言.Java一样,Python中也存在条件选择和循环语句,其风格和C语言.java的很类似,但是在写法和用法上还是有一些区别.今天就让我们一起来了解一下. 一 ...
- python两个for循环顺序_python两个for循环顺序_Python编程基础2——顺序、循环、选择...
1.课前阅读 1.1学习目标 ①了解Python编程语言中的三大编程结构. ②重点:Python中如何使用顺序.循环.选择结构. ③学习第一个Python库函数. 1.2实践内容 ①学习使用Pytho ...
- 新个人项目-- 拼图游戏
正式开博记录,想和很久但一直没有执行的新个人项目-- 拼图游戏. 完全由前端技术完成.从简单粗糙到复杂精细. 为了督促自己持续推进该项目,立博为证. 之后会陆续将文档.计划补充上来.都是非官方非正式的 ...
- c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc
C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...
- 软件工程基础-个人项目-数独游戏
软件工程基础-个人项目-数独游戏 ----------------------------------------------------------------------------------- ...
- python 围棋按照坐标查找棋子_python 实现围棋游戏(纯tkinter gui)
1. 开始前 本程序基于tkinter生成GUI,使用前请确保已经安装好tkinter 对于windows用户,您可能已经安装了tkinter,cmd中输入python -c 'import tkin ...
最新文章
- 2022-2028年中国钢材市场投资分析及前景预测报告(全卷)
- Google工作原理
- 即学即用的30段Python实用代码
- 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
- JAVA单线程以及java多线程的实现方式
- Docker无法修改devicemapper(四)
- python实现文件下载的方法总结
- mysql数据库显示问号_mysql数据库中文显示问号
- outlook的插件管理(Web界面)
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...
- __bridge,__bridge_retained,__bridge_transfer
- java rtti_java对RTTI的所有需要
- 山西首次举办明清水陆画专题展 多数藏品首次面世
- 54. mysqli 扩展库
- HTML基础 - HTML文本格式
- 计算机主机的声音线是哪个好,电脑显示器连接线哪种接口好|VGA、HDMI视频接口选哪个好...
- css奇技淫巧-色彩渐变与动态渐变
- js 画两点之间的连线
- 听课感悟——信息与信息特征
- 使用Python来编写一个简单的感知机