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() #游戏开始

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值