python小项目:1、人机剪刀石头布

python小项目:1、人机剪刀石头布

测试项目:人机对战(石头剪刀布)
流程:
玩家:进入系统,输入玩家姓名,选择对战的角色,进行pk环节,选择出具的手势,与电脑进行pk
显示:挑选对战英雄,显示对决情况,显示对战的结果

import random
name="玩家"
hero_name=""
ren_win=0
pc_win=0
pk_sum=0
def selectHeros():
print("==============欢迎来到人机对战系统=================")
#定义全局变量,局部变量nolocal
global name
global hero_name
name=input("请输入您的昵称:")
print("您好,"+name)
hero=input("请选择你要对战的英雄编号:1.亚瑟 2.嬴政 3李白 4.伽罗\n")
if(hero=="1"):
print("您选择了亚瑟")
hero_name="亚瑟"
elif(hero=="2"):
print("您选择了嬴政")
hero_name="嬴政"
elif (hero == "3"):
print("您选择了李白")
hero_name = "李白"
elif (hero == "4"):
print("您选择了伽罗")
hero_name = "伽罗"
else:
print("英雄都选不了,玩什么游戏,去和傻瓜玩吧")
hero_name = "傻瓜"
#进行pk
def ren_pc_pk():
#人赢的局数
global ren_win
#电脑赢的局数
global pc_win
#总局数
global pk_sum
#用循环去模仿对决的
while True:
#每次进入一次循环,我的对局数+1
pk_sum += 1
#人选择手势
ren_key=int(input("请选择你要出的手势:(1.石头 2.剪刀 3.布)\n"))
if(ren_key==1):
print("您选择了石头")
elif(ren_key==2):
print("您选择了剪刀")
elif (ren_key == 3):
print("您选择了布")
else:
print("手势都选不了,别玩游戏了")
#如果手势不是我想要的,那么就让游戏强制退出
exits()
#电脑选择手势
#获取随机数
pc_key=random.randint(1,3)
if (pc_key == 1):
print("电脑选择了石头")
elif (pc_key == 2):
print("电脑选择了剪刀")
else:
print("电脑选择了布")
#判断对决结合
if(ren_key==1 and pc_key==2 or ren_key==2 and pc_key==3 or ren_key==3 and pc_key==1 ):
ren_win = ren_win+1
print("您赢了!,厉害了我的哥")
elif(ren_key==pc_key):
print("不符再战")
else:
pc_win = pc_win+1
print("您输喽!,你个小菜鸡")
if(pk_sum>4):
print("战斗结束!")
#break作用的范围是距离当前代码从内到外最近的循环
break
#结果展示
def showResult():
print("===============对战结果========================")
print("{}一共对战了{}局,其中{}赢了{}局,{}赢了{}局\n最终结果是:".format(name,pk_sum,name,ren_win,hero_name,pc_win))
if(ren_win>pc_win):
print("大吉大利,今晚吃鸡")
elif(ren_win==pc_win):
print("今天平局,来人再战")
else:
print("你连{}都打不过".format(hero_name))
#退出
def exits():
k=input("是否继续?退出按q退出游戏,按任意键继续!\n")
if(k=='q'):
print("游戏结束!")
#将代码设置为0
exit(0)
else:
# 人赢的局数
global ren_win
# 电脑赢的局数
global pc_win
# 总局数
global pk_sum
ren_win = 0
pc_win = 0
pk_sum = 0
# 用循环去模仿对决的
selectHeros()
ren_pc_pk()
showResult()
exits()
if __name__ == '__main__':
selectHeros()
ren_pc_pk()
showResult()
exits()
#运行结果
==============欢迎来到人机对战系统=================
请输入您的昵称:鹏少
您好,鹏少
请选择你要对战的英雄编号:1.亚瑟  2.嬴政  3李白  4.伽罗
4
您选择了伽罗
请选择你要出的手势:(1.石头  2.剪刀  3.布)
2
您选择了剪刀
电脑选择了石头
您输喽!,你个小菜鸡
请选择你要出的手势:(1.石头  2.剪刀  3.布)
3
您选择了布
电脑选择了石头
您赢了!,厉害了我的哥
请选择你要出的手势:(1.石头  2.剪刀  3.布)
1
您选择了石头
电脑选择了布
您输喽!,你个小菜鸡
请选择你要出的手势:(1.石头  2.剪刀  3.布)
3
您选择了布
电脑选择了布
不符再战
请选择你要出的手势:(1.石头  2.剪刀  3.布)
4
手势都选不了,别玩游戏了
是否继续?退出按q退出游戏,按任意键继续!
q
游戏结束!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114575.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】[通俗易懂]

    基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】[通俗易懂]一、语言和环境1.实现语言:JAVA语言。2.环境要求:MyEclipse/Eclipse+Tomcat+MySQL。3.使用技术:SpringMVC+Spring+MyBatis或JSP+Servlet+JavaBean+JDBC。二、实现效果实现能够对患者姓名,医师类别、科室的模糊查询,用户点击核销以后状态变为已就诊。点击挂号实现基本信息的添加三、实现代码数据库:SETFOREIGN_KEY_CHECKS=0;———-

  • 微信开放平台PC端扫码登录功能个人总结

    微信开放平台PC端扫码登录功能个人总结最近公司给我安排一个微信登录的功能,需求是这样的:  1.登录授权    点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录;      若当前账号未绑定微信账号,扫描后提示“您的账号未绑定微信号,请先登录绑定”;      点击“返回”按钮,界面切换为账号密码登录;      若微信号绑定多个账号在,则展示所绑定全部账号的用户名…

  • 1、排序二叉树「建议收藏」

    1、排序二叉树「建议收藏」2.建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入:输入有一行,表示若干个要排序的数,输入0时停止输出二叉树的凹入表示和二叉树的中序遍历序列sample:input:567834891235677722570output:     12 …

  • es数据库简介

    es数据库简介##1.es是什么ElasticSearch简称ES,是一个高拓展和开源的全文搜索和分析引擎,可以准实时地存储、搜索、分析海量的数据。它和MongoDB、redis等一样是非关系型数据。业应用定位:采用RestfulAPI标准的可扩展和高可用的实时数据分析的全文搜索工具。可拓展:开源软件,支持很多第三方插件。高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。采用RestfulAPI标准:通过http接口使用JSO

  • Android移动开发-VR全景照片简单实现

    Android移动开发-VR全景照片简单实现VR技术的热度每年都在增长,在购物、旅游等方面运用度很高。该项目引用了Google的vr:sdk-panowidget依赖库,通过VrPanoramaView,简单实现在手机上查看全景照片,下面是项目介绍。build.gradle(Module:app)需要导入依赖:dependencies{implementation‘com.google.vr:sdk-panowidget:1.30.0’}布局文件activity_main.xml,调

  • EasyPlayer实现直播抓拍

    EasyPlayer实现直播抓拍对于一个裸的RTSPURL,存放在播放列表上略显单调与枯燥。大家可以看到EasyPlayer在播放完视频后会保存一帧图片到列表上。那么这个功能是如何做到的呢?如果自己实现解码的话,比如使用ffmpeg解码,这种情况下,将视频帧解码,再编码成jpeg保存下来,应该不是什么难事。相信大多数播放器都是这样处理的。H264格式的视频码流=>解码=>YUV格式的视频帧=>压缩=>jpeg=>保存到

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号