面向对象 之 炮塔游戏(继承,对象存储到列表)

‘’’
实现思路:

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()

案例效果图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值