面向对象 之 炮塔游戏(继承,对象存储到列表)
程序员文章站
2022-06-27 14:30:09
''' 实现思路: 1.创建一个炮塔类,包含2个变量,这2个变量一个是炮塔名字,一个是攻击力。2.在炮塔类中写一个攻击函数,参考案例效果写出对应的语句。可以暂时先不写。3.在炮塔类中写一个升级函数,让攻击力乘2,参照案例效果。4.创建单体炮塔类和群体炮塔类分别继承自炮塔。分别重写攻击函数,输出语句见 ......
'''
实现思路:
1.创建一个炮塔类,包含2个变量,这2个变量一个是炮塔名字,一个是攻击力。
2.在炮塔类中写一个攻击函数,参考案例效果写出对应的语句。可以暂时先不写。
3.在炮塔类中写一个升级函数,让攻击力乘2,参照案例效果。
4.创建单体炮塔类和群体炮塔类分别继承自炮塔。分别重写攻击函数,输出语句见案例效果。
5.单体炮塔类中定义一个技能减速方法,见案例效果。
6.群体炮塔类中定义一个技能冰冻的方法。
7.在主程序中创建2个单体炮塔和2个群体炮塔。将这4个对象存储到列表中。遍历列表尝试完成案例效果。
'''
#父类 炮塔 class pata: def __init__(self,name,tak): self.name = name self.tak = tak print('%s建设完毕,攻击力%d' % (self.name, self.tak),end=',') def gongji(self): print('{}进行单体输出'.format(self.name)) def shengji(self): print('%s升级完毕,攻击力*2,当前攻击力%d'%(self.name,self.tak*2)) #单体炮塔 class dan(pata): def __init__(self,name,tak): super().__init__(name,tak) print('能够对单目标进行攻击') def jiansu(self): print('%s释放技能减速'%(self.name)) #群体炮塔 class qun(pata): def __init__(self,name,tak): super().__init__(name,tak) print('能够对群体目标进行攻击') def gongji(self): print('{}进行群体输出'.format(self.name)) def jiansu(self): print('%s释放技能冰冻'%(self.name)) #创建主程序 储存列表遍历 def man(): print('游戏开始') d1 = dan('萝卜炮1号', 20) d2 = dan('萝卜炮2号', 20) q1 = qun('蘑菇炮1号', 10) q2 = qun('蘑菇炮2号', 10) lt = [d1,d2,q1,q2] print('怪物入侵') for i in lt: i.gongji() i.jiansu() print('炮塔升级') for k in lt: k.shengji() if __name__ == '__main__': man()
案列效果图