编写程序,按如下要求设计类: 王者荣耀是一款非常流行的即时对战类游戏,里面有很多的游戏角色可供选择。所有的角色都具有以下操作:普通攻击、技能攻击。 创建一个基类(Role),该类包括如下成员: (1)属性:普通攻击值(attackValue,整数型),技能攻击名称(skillName,字符串类型),角色名称(roleName,字符串类型),以上三个属性均为私有属性 (2)方法:普通攻击(commAttack()),技能攻击(skillAttack()) 其中:普通攻击方法显示:XXX正在使用普通攻击,攻击力为XXX。”,XXX表示具体英雄的具体角色名与攻击值。 技能攻击方法显示:XXX正在使用特殊攻击“XXX”。XXX表示具体的角色名称与技能攻击名称。 创建两个英雄角色,均继承基类 关羽类(GuanYu):普通攻击值10,技能攻击名称是“单刀赴会” 吕布(LvBu):普通攻击值15,技能攻击名称是“贪狼之握”,当使用吕布的技能攻击时,要显示:谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。 创建一个控制类(Control),该类有一个方法,该方法用于接收传入的具体的英雄角色,该方法采用多态技术实现。 当传入“关羽”时,显示如下信息: (1)当调用关羽的普通攻击方法时,在控制台显示: 关羽正在使用普通攻击,攻击力为10。 (2)当调用关羽的技能攻击方法时,在控制台显示: 关羽正在使用特殊攻击“单刀赴会”。 当传入“吕布”时,显示如下信息: (1)当调用吕布的普通攻击方法时,在控制台显示: 吕布正在使用普通攻击,攻击力为15。 (2)当调用吕布的技能攻击方法时,在控制台显示: 谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。 提示:注意在子类中可以使用super()方法使用父类的属性与方法。 求求了求求了,太难了
class Role:
def __init__(self, attackValue, skillName, roleName):
self.__attackValue = attackValue # 普通攻击值,整型
self.__skillName = skillName # 技能攻击名称,字符串
self.__roleName = roleName # 角色名称,字符串
def commAttack(self):
print('{0}正在使用普通攻击,攻击力为{1}。'.format(self.__roleName, self.__attackValue))
def skillAttack(self):
print('{0}正在使用特殊攻击“{1}”。'.format(self.__roleName, self.__skillName))
class GuanYu(Role):
def __init__(self):
super().__init__(10, '单刀赴会', "关羽" )
class LvBu(Role):
def __init__(self):
super().__init__(15, '贪狼之握', "吕布" )
def skillAttack(self):
print('谁敢战我!!!', end = '')
super().skillAttack()
class Control:
def __init__(self, obj):
obj.commAttack()
obj.skillAttack()
g = GuanYu()
l = LvBu()
cg = Control(p)
cl = Control(l)
输出:
关羽正在使用普通攻击,攻击力为10。
关羽正在使用特殊攻击“单刀赴会”。
吕布正在使用普通攻击,攻击力为15。
谁敢战我!!!吕布正在使用特殊攻击“贪狼之握”。
牛
这个是一个论述题😇