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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Lamp架构_lamp平台

    Lamp架构_lamp平台一、LAMP架构介绍   现如今打开浏览器,搜索LAMP关键词,出现大量的关于LAMP的介绍,包括LAMP的一键脚本、LAMP的yum安装、LAMP的编译安装,但是对于一个非开发或非专业人员有可能根据网络参考资源实现LAMP的搭建并成功运行各种服务,也有部分人员完全照搬某些博客知识进行搭建,最后以失败告终,因此抱怨互联网资源不够成熟,其实根本原因并非如此,主要原因如下: 初学者对LA…

    2022年10月17日
    4
  • python中decode和encode的区别_python中decode和encode区别

    python中decode和encode的区别_python中decode和encode区别#-*-coding:utf-8importsys”’*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb231…

    2022年10月7日
    4
  • LAMP配置-php.ini

    LAMP配置-php.ini[PHP]zlib.output_compression=Offimplicit_flush=Offunserialize_callback_func=serialize_precision=-1disable_functions=disable_classes=zend.enable_gc=Onexpose_php=Onmax_execution_time=30max_input_time=60memory_limit=128.

    2022年6月6日
    27
  • c语言实现简单的socket通信

    c语言实现简单的socket通信一 通讯示意图 nbsp 二 函数详解 1 socket 函数 intsocket intdomain inttype intprotocol socket 函数对应于普通文件的打开操作 普通文件的打开操作返回一个文件描述字 而 socket 用于创建一个 socket 描述符 socketdescri 它唯一标识一个 socket 这个 socket 描述字跟文件描

    2025年6月24日
    4
  • goland激活码2021【2021.10最新】

    (goland激活码2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html6EK6WKOHUX-eyJsaWN…

    2022年3月28日
    46
  • Eclipse代码的自动补全

    Eclipse代码的自动补全打开eclipse依次点击Window–>Perferences–>Java–>Editor–>ContentAssist在【AutoactivationtriggersforJava:】选项后的文本框中会看到一个”.”。eclipse默认只有在你输入”.”之后才会有代码提示和自动补全。我们需要在”.”之后加上”qwertyuiopasdfghjklzxcvbnm”,其实就是从左至右,从上至下顺序按你的键盘。…

    2022年5月31日
    38

发表回复

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

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