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/114478.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月6日 上午9:00
下一篇 2021年10月6日 上午9:00


相关推荐

  • 如何用 python gzip解压?[通俗易懂]

    如何用 python gzip解压?[通俗易懂]#createadecompressgzipfilefunctionimportgzipimportosdefun_gzip(gzip_file):f_name=gzip_file.split(‘.’)[0]withgzip.open(gzip_file,’rb’)asf_in:withopen(f_name,’wb’)asf_out:f_out.writelines(f_in)

    2025年9月25日
    7
  • SpringMVC之源码分析–ThemeResolver(一)

    SpringMVC之源码分析–ThemeResolver(一)

    2022年4月2日
    54
  • N8N Docker 部署教程:Win/Mac 安装命令与终端代理设置指南

    N8N Docker 部署教程:Win/Mac 安装命令与终端代理设置指南

    2026年3月15日
    1
  • Python Java 滑块识别-通杀滑块「建议收藏」

    Python Java 滑块识别-通杀滑块「建议收藏」遇到滑块问题在写爬虫的时候,经常会遇到滑块问题,很多次都想过尝试如何攻破滑块,但是每次都没成功,除了最开始的极验滑块,当时通过原图和滑块图的对比,能够得出缺口坐标,但是随着极验、网易、腾讯滑块的更新,已经不能够找到原图了,下面给出滑块通杀的解决方案。尝试攻破滑块在这里介绍一款通杀滑块的平台,不过需要开通VIP,VIP是永久的,可以无限次识别,我在这里开通了永久VIP,花了99RMB,平台后面也会推出点选供VIP使用。平台地址:www.51learn.vip网站名称是【无限打码】,可以直接百度到。

    2022年10月8日
    4
  • 拉链表的展开算法_如何求展开式的系数

    拉链表的展开算法_如何求展开式的系数在做数据仓库项目的过程中,有时候可能也会根据历史拉链表,展开为每天全量表;相当于一个还原的过程,即构建拉链表的反过程。1、建表及插入测试数据语句 –建表语句–生成EDW_T00_H表(历史拉链表)–CreatetablecreatetableEDW_T00_H(IDVARCHAR2(2)notnull,…

    2022年10月16日
    36
  • sigar 获取跨平台服务器信息

    sigar 获取跨平台服务器信息Sigar 是 Hyperic hq 产品的基础包 是 HypericHQ 主要的数据收集组件 它用来从许多平台收集系统和处理信息 这些平台包括 Linux Windows Solaris AIX HP UX FreeBSDandMa Sigar 有 C C Java 和 PerlAPI java 版的 API 为 sigar jarsigar jar 的底层是用 C 语言编写的 它通过本

    2026年3月18日
    2

发表回复

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

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