python猜拳小游戏代码(python剪刀石头布游戏代码)
以下是python猜拳小游戏(剪刀石头布游戏)代码:
游戏代码
import random #定义错误规则类,当玩家输入错误的值时需要触发这个。 class RulesError(Exception):pass #动作集 ACTSET={1:'石头',2:'剪刀',3:'布'} #输入状态标志 INPUT_STATE_MARK = True STONE = 1 #定义石头 SCISSORS = 2 #剪刀 PAPER = 3 #bu PLAYERWON = 1 #玩家胜利 ROBOTWON = 2 #机器人胜利 EQ = 0 #平局 #获取输入 def getInput(): while INPUT_STATE_MARK: try: inint=int(input('轮到你了:')) if inint in [1,2,3]: #用户输入1,2,3时返回输入值 return inint else: #错误的值,触发规则错误 raise RulesError() except: print('请遵守游戏规则!') pass #定义机器人类 class _robot: def __init__(self,name='彩虹一号'): #机器人名称 self.name=name def getAct(self): #机器人出手啦 return random.randint(1,3) #定义玩家类 class _player: def __init__(self):pass def getAct(self): #玩家出手啦 return getInput() #定义裁判 class _judge: def __int__(self,name='1号裁判'): self.name=name def ruling(self,robotact,playeract): #裁判判定胜负!!! if robotact==playeract:return EQ if robotact==STONE and playeract==SCISSORS:return ROBOTWON if robotact==STONE and playeract==PAPER:return PLAYERWON if robotact==SCISSORS and playeract==STONE:return PLAYERWON if robotact==SCISSORS and playeract==PAPER:return ROBOTWON if robotact==PAPER and playeract==STONE:return ROBOTWON if robotact==PAPER and playeract==SCISSORS:return PLAYERWON #定义游戏 class _game: def __init__(self,robot,player,judge): self.robot=robot self.player=player self.judge=judge def showGameInfo(self): #打印游戏规则 print('不死不休猜拳小游戏') print('-'*20) print('游戏规则') print('输入数字1表示石头,2表示剪刀,3表示布') def gameTable(self): #游戏桌面 roundnum=1 while True: print('当前第%d回合.' % (roundnum)) robotact=self.robot.getAct() print('机器人%s:我出 %s' %(self.robot.name,ACTSET[robotact])) playeract=self.player.getAct() print('你出了 %s' %(ACTSET[playeract])) result=self.judge.ruling(robotact,playeract) if result==EQ: print('裁判:%s' % ('平局')) elif result==ROBOTWON: print('裁判:%s' % ('机器人获胜!')) elif result==PLAYERWON: print('裁判:%s' % ('你获胜了!')) roundnum+=1 print('-'*20) print('再来一局!') def start(self): #开始游戏 print('-'*20) print('游戏开始!') self.gameTable() if __name__=='__main__': robot=_robot()#实例化机器人 player=_player()#实例化玩家 judge=_judge()#实例化裁判 game=_game(robot,player,judge)#实例化游戏 game.showGameInfo()#打印游戏规则 game.start() #游戏开始
代码解释
这是一个猜拳游戏的程序。它使用Python编写,通过命令行交互方式让玩家和机器人进行猜拳对决。以下是程序的主要结构和功能:
- 程序开始时,定义了一个错误规则类
RulesError
,用于处理玩家输入错误的情况。 ACTSET
是一个动作集,表示石头、剪刀和布的对应关系。INPUT_STATE_MARK
是输入状态标志,用于控制输入的循环。STONE
、SCISSORS
和PAPER
分别表示石头、剪刀和布的常量值。PLAYERWON
、ROBOTWON
和EQ
分别表示玩家胜利、机器人胜利和平局的常量值。getInput
函数用于获取玩家输入,判断输入的合法性,并返回输入的值。_robot
类表示机器人,具有一个getAct
方法,用于生成随机的猜拳动作。_player
类表示玩家,具有一个getAct
方法,通过调用getInput
获取玩家输入的猜拳动作。_judge
类表示裁判,具有一个ruling
方法,用于判断猜拳的胜负。_game
类表示游戏,具有一个showGameInfo
方法,用于打印游戏规则,以及一个gameTable
方法,用于进行游戏对局。start
方法用于开始游戏,实例化了机器人、玩家和裁判对象,并调用相应的方法开始游戏。
你可以运行这段代码体验猜拳游戏。