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
游戏结束!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言入门教程–-5判断语句

    c语言入门教程–-5判断语句

    2021年3月12日
    190
  • 深拷贝和浅拷贝的区别,说法正确的是_前端浅拷贝和深拷贝的区别

    深拷贝和浅拷贝的区别,说法正确的是_前端浅拷贝和深拷贝的区别首先,明确一点深拷贝和浅拷贝是针对对象属性为对象的,因为基本数据类型在进行赋值操作时(也就是拷贝)是直接将值赋给了新的变量,也就是该变量是原变量的一个副本,这个时候你修改两者中的任何一个的值都不会影响另一个,而对于对象或者引用数据来说在进行浅拷贝时,只是将对象的引用复制了一份,也就内存地址,即两个不同的变量指向了同一个内存地址,那么在改变任一个变量的值都是该变这个内存地址的所存储的值,所以两个变量的值都会改变。一、clone()方法在Java中是用clone()方法实现深拷贝的,比如以下代码在Jav

    2022年10月1日
    0
  • java开发区块链只需150行代码

    java开发区块链只需150行代码本文目的是通过java实战开发教程理解区块链是什么。将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等。这个基本的java区块链也实现简单的工作量证明系统。

    2022年7月3日
    21
  • 那些错过的人和事,已成回忆

    哪些曾经没有做的事情,你现在还想做吗?你现在还能做吗?最近的一些梦,让我思考哪些我当时有机会做,但是最后没有做的事情!现在回忆起来,略有遗憾,也在感慨时间的力量,推着我一直向前,我已经不再是过去的那个我了。我记得小的时候,那会上小学,在学校外面的有个老奶奶开的小卖铺,那个小卖铺里面是用木头搭建的房子,屋顶上面用的是茅草铺的。小卖铺里面卖着一种一毛钱一片的辣条(片),本来这种辣条(片…

    2022年2月27日
    41
  • AC自己主动机 总结

    AC自己主动机 总结

    2022年1月1日
    41
  • 怎么开发一个简单的小程序_微信小程序编写教程

    怎么开发一个简单的小程序_微信小程序编写教程做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档。微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html,如下图:这里就是做微信小程序开发的全部官方文档。知道了文档的位置,下面我们来介绍下如何做一个微信小程序开发:第一步:下载微信小程序开发者工具并安装,下载路径:https://mp.weix…

    2022年9月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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