zoukankan      html  css  js  c++  java
  • day_5.12 py 老王开枪demo

      ps:2018-7-24 21:00:04 其实这部分主要是面向对象的复习!而不是面向过程 

     1 #!/usr/bin/env/python
     2 #-*-coding:utf-8-*-
     3 '''
     4 2018-5-12 19:07:04
     5 直接练习 老王开枪
     6 ps:代码太多太乱所以运行不成功
     7 这个练习的主要目的就是面向对象编程
     8 先定义方法根据方法来在类里面定义
     9 '''
    10 class Person(object):
    11     ''''''
    12     def __init__(self,name):
    13         super(Person,self).__init__()
    14         self.name = name
    15         self.gun =None #用来保存枪对象的引用
    16         self.hp = 100
    17     def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp):
    18         '''把子弹撞到弹夹'''
    19         #弹夹,保存子弹(子弹)
    20         dan_jia_temp.baocun_zidan(zi_dan_temp)
    21     def anzhuang_danjia(self,gun_temp,danjia_temp):
    22         '''把弹夹安装到枪中'''
    23         #枪.保存弹夹(弹夹)
    24         gun_temp.baocun_danjia(danjia_temp)
    25     def naqiang(self,gun_temp):
    26         '''拿起一把枪'''
    27         self.gun =gun_temp
    28 
    29 
    30 class Gun(object):
    31     '''枪类'''
    32     def __init__(self,name):
    33         super(Gun,self).__init__()
    34         self.name =name #用来记录枪的类型
    35         self.danjia = None  #用来记录弹夹对象的引用
    36     def baocun_dnajia(self,dan_jia_temp):
    37         '''用一个属性来保存这个弹夹对象的引用'''
    38         self.danjia =  dan_jia_temp
    39     # def __str__(self):
    40     #     if self.danjia:
    41     #         return "抢的信息为%s:%s"(self.name,self.danjia)
    42     #     else:
    43     #         return "抢的信息为:%s" %(self.name)
    44 
    45 class Danjia(object):
    46     '''弹夹类'''
    47     def __init__(self,max_num):
    48         super(Danjia,self).__init__()
    49         self.max_num = max_num#用来记录弹夹的最大容量
    50         self.zidan_list =[] #用来记录所有的子弹的引用
    51     def baocun_zidan(self,zi_dan_temp):
    52         '''将这颗子弹保存'''
    53         self.zidan_list.append(zi_dan_temp)
    54     # def __str__(self):
    55     #     return "弹夹的信息为:%d/%d"(len(self.zidan_list),self.max_num)
    56 
    57 class Zidan(object):
    58     '''子弹类'''
    59     def __init__(self,HP):
    60         super(Zidan,self).__init__()
    61         self.HP = HP    #这颗子弹掉的血
    62 
    63 def main():
    64     '''  用来控制整个程序的流程'''
    65 
    66     # 1 .创建老王对象
    67     laowang = Person("老王")
    68     # 2. 创建一个枪对象
    69     ak47 = Gun("AK47")
    70     # 3. 创建一个弹夹对象
    71     dan_jia = Danjia(20)
    72     # 4. 创建一些子弹
    73     zi_dan = Zidan(10) 
    74     # 5. 老王把子弹安装到弹夹中
    75     # 老王.安装子弹到弹夹中(弹夹,子弹)
    76     laowang.anzhuang_zidan(dan_jia,zi_dan)
    77     # 6. 老王把弹夹安装到枪中
    78     #老王.安装弹夹到枪中(枪,弹夹)
    79     laowang.anzhuang_danjia(ak47,dan_jia)
    80     # #test 测试弹夹的信息
    81     # print(dan_jia)
    82     # #test:测试枪的信息
    83     # print(ak47)
    84     # 7.  老王拿枪
    85     laowang.naqiang(ak47)
    86     # test 测试老王对象
    87 
    88     # 8. 创建一个敌人
    89     gebi_laosong = Person("隔壁老宋")
    90     print(gebi_laosong)
    91     # 9. 老王开枪打敌人
    92 if __name__ == '__main__':
    93    main()
  • 相关阅读:
    codevs1028 花店橱窗布置
    bzoj1497 [NOI2006]最大获利 (最大闭合权图)
    扩展欧几里得算法总结
    codevs1033 蚯蚓的游戏问题
    bzoj1001狼抓兔子
    CSS3中的选择器
    LESS快速入门
    怎样让老浏览器兼容html5新标签
    http与https差异
    css3中的radius
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9030103.html
Copyright © 2011-2022 走看看