Python—实操小实验之人机PK游戏(终极版本—应用类与对象的知识点应用)
人机PK游戏所需要的基础元素如下:
①要有玩家、敌人、生命值、攻击力,还要有计分;
②要可以互相进行攻击,攻击之后生命值要相应的减少;
③最后依据分数分出胜负结果。
终极版本中:
主要用到的知识点是:将函数进行封装打包,成为类;
不同角色的属性要有所差异,角色之间增加相互克制的类方法;
当玩家输入角色出场顺序时有误,要提醒玩家重新输入;
仍然与初级版本一样,对战,计分,分胜负。
#导入必要的包
import random
import time
#创建一个类来实例化具体的游戏角色
class Role():
def __init__(self,name):
self.name = name
self.life = random.randint(100,150)
self.attack = random.randint(30,50)
#运用继承创造子类,实例化3个不同的角色类型
class Knight(Role):
def __init__(self,name = '【圣光骑士】'):
Role.__init__(self,name)
self.life = int(self.life*1.5) #对指定角色加属性值
self.attack = int(self.attack*0.8)
def fight_buff(self,opponent,str1,str2): #设定角色的克制关系
if opponent.name =='【暗影刺客】': #如果遇到暗影刺客,那么攻击在原基础上再增加1.5倍
self.attack = self.attack*1.5
print('{}【圣光骑士】对{}【暗影刺客】有压制作用'.format(str1,str2))
class Assassin(Role):
def __init__(self,name = '【暗影刺客】'):
Role.__init__(self,name)
self.life = int(self.life*0.8)
self.attack = int(self.attack*1.5)
def fight_buff(self,opponent,str1,str2):
if opponent.name =='【精灵弩手】':
self.attack = self.attack*1.5
print('{}【暗影刺客】对{}【精灵弩手】有压制作用'.format(str1,str2))
class Bowman(Role):
def __init__(self,name = '【精灵弩手】'):
Role.__init__(self,name)
self.life = int(self.life*1.2)
self.attack = int(self.attack*1.2)
def fight_buff(self,opponent,str1,str2):
if opponent.name =='【圣光骑士】':
self.attack = self.attack*1.5
print('{}【精灵弩手】对{}【圣光骑士】有压制作用'.