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


    '''
    实现思路:

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

    案列效果图

  • 相关阅读:
    实现继承的几种方式
    使用 + 操作符、parseInt 、 parseFloat等方法处理数字字符串时的不同
    jQuery插件版无缝轮播,重写了之前的代码,显得更高大上一点
    我是如何从零开始构建一个jsp项目的
    css居中方法详解
    嫌innerHTML性能不够好,推荐几个新方法
    初学事件委托
    Set集合——HashSet、TreeSet、LinkedHashSet(2015年07月06日)
    十大Intellij IDEA快捷键(转)(2015年06月15日)
    IntelliJ IDEA 集成Tomcat后找不到HttpServlet问题(2015年06月13日)
  • 原文地址:https://www.cnblogs.com/chengxubo/p/9781094.html
Copyright © 2020-2023  润新知