经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
面向对象 之 炮塔游戏(继承,对象存储到列表)
来源:cnblogs  作者:程序灬波  时间:2018/10/15 9:21:16  对本文有异议

'''
实现思路:

1.创建一个炮塔类,包含2个变量,这2个变量一个是炮塔名字,一个是攻击力。
2.在炮塔类中写一个攻击函数,参考案例效果写出对应的语句。可以暂时先不写。
3.在炮塔类中写一个升级函数,让攻击力乘2,参照案例效果。
4.创建单体炮塔类和群体炮塔类分别继承自炮塔。分别重写攻击函数,输出语句见案例效果。
5.单体炮塔类中定义一个技能减速方法,见案例效果。
6.群体炮塔类中定义一个技能冰冻的方法。
7.在主程序中创建2个单体炮塔和2个群体炮塔。将这4个对象存储到列表中。遍历列表尝试完成案例效果。
'''

  1. #父类 炮塔
  2. class Pata:
  3.   def __init__(self,name,tak):
  4.     self.name = name
  5.     self.tak = tak
  6.     print('%s建设完毕,攻击力%d' % (self.name, self.tak),end=',')
  7.   def gongji(self):
  8.     print('{}进行单体输出'.format(self.name))
  9.   def shengji(self):
  10.     print('%s升级完毕,攻击力*2,当前攻击力%d'%(self.name,self.tak*2))
  11. #单体炮塔
  12. class Dan(Pata):
  13.   def __init__(self,name,tak):
  14.     super().__init__(name,tak)
  15.     print('能够对单目标进行攻击')
  16.   def jiansu(self):
  17.     print('%s释放技能减速'%(self.name))
  18. #群体炮塔
  19. class Qun(Pata):
  20.   def __init__(self,name,tak):
  21.     super().__init__(name,tak)
  22.     print('能够对群体目标进行攻击')
  23.   def gongji(self):
  24.     print('{}进行群体输出'.format(self.name))
  25.   def jiansu(self):
  26.     print('%s释放技能冰冻'%(self.name))
  27. #创建主程序 储存列表遍历
  28. def Man():
  29.   print('游戏开始')
  30.   d1 = Dan('萝卜炮1号', 20)
  31.   d2 = Dan('萝卜炮2号', 20)
  32.   q1 = Qun('蘑菇炮1号', 10)
  33.   q2 = Qun('蘑菇炮2号', 10)
  34.   lt = [d1,d2,q1,q2]
  35.   print('怪物入侵')
  36.   for i in lt:
  37.     i.gongji()
  38.     i.jiansu()
  39.   print('炮塔升级')
  40.   for k in lt:
  41.     k.shengji()
  42. if __name__ == '__main__':
  43.   Man()

案列效果图

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号