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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值