python-老王開槍

來源:互聯網
上載者:User

標籤:def   imp   max   __str__   shang   obj   zid   str   author   

  1 __author__ = "Stephen Yuan"  2 import time  3   4 class Person(object):  5     """人的類"""  6     def __init__(self, name):  7         super(Person, self).__init__()  8         self.name = name  # 記錄人的名字  9         self.gun = None  # 預設人是沒有槍的 10         self.hp = 100  # 預設人的血量100 11  12     def anzhuang_zidan(self, dan_jia_temp, zi_dan_temp): 13         """把子彈安裝到彈夾內""" 14         dan_jia_temp.baocun_zidan(zi_dan_temp) 15  16     def anzhuang_danjia(self, ak47, dan_jia): 17         """把彈夾安裝到槍內""" 18         ak47.baocun_danjia(dan_jia) 19  20     def na_qiang(self, gun_temp): 21         """拿起一把槍""" 22         self.gun = gun_temp 23  24     def __str__(self): 25         if self.gun: 26             return "%s的血量:%d,%s, 他開槍了,嘣!" %(self.name, self.hp, self.gun) 27         else: 28             if self.hp == 100: 29                 return "%s的血量,%d, 他沒有槍" % (self.name, self.hp) 30             elif self.hp > 0: 31                 return "%s的血量,%d,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍..." % (self.name, self.hp) 32             else: 33                 return "%s已經死亡..." % self.name 34  35     def kai_qiang(self, diren, zi_dan_temp, dan_jia_temp): 36         """打敵人""" 37         diren.hp -= zi_dan_temp.sha_shang_li  # 減血 38         dan_jia_temp.zidan_list.pop()  # 減子彈 39  40 class Gun(object): 41     """槍類""" 42     def __init__(self, name): 43         super(Gun, self).__init__() 44         self.name = name  # 記錄槍的類型 45         self.danjia = None  # 預設槍中是沒有彈夾的 46  47     def baocun_danjia(self, dan_jia_temp): 48         """槍儲存彈夾""" 49         self.danjia = dan_jia_temp 50  51     def __str__(self): 52         if self.danjia: 53             return "槍的資訊:%s, %s" % (self.name, self.danjia) 54         else: 55             return "槍的資訊:%s,這把槍沒有彈夾" % self.name 56  57 class DanJia(object): 58     """彈夾類""" 59     def __init__(self, max_num): 60         super(DanJia, self).__init__() 61         self.max_num =max_num  # 彈夾的最大容量 62         self.zidan_list = []  # 用列表儲存子彈的數量 63  64     def baocun_zidan(self, zi_dan_temp): 65         """彈夾儲存子彈""" 66         self.zidan_list.append(zi_dan_temp) 67  68     def __str__(self): 69         return "彈夾的資訊:%d/%d" % (len(self.zidan_list), self.max_num) 70  71 class ZiDan(object): 72     """子彈類""" 73     def __init__(self, sha_shang_li): 74         super(ZiDan, self).__init__() 75         self.sha_shang_li = sha_shang_li  # 子彈的殺傷力 76  77 def main(): 78     """用來控制整個程式的流程""" 79     # 建立老王 80     lao_wang = Person(‘老王‘) 81  82     # 建立槍 83     ak47 = Gun("AK47") 84  85     # 建立彈夾 86     dan_jia = DanJia(30) 87  88     # 建立子彈 89     zi_dan = ZiDan(10) 90  91     for i in range(25): 92         # 老王把子彈安裝到彈夾內 93         lao_wang.anzhuang_zidan(dan_jia, zi_dan) 94  95     # 老王把彈夾安裝到槍中 96     lao_wang.anzhuang_danjia(ak47, dan_jia) 97  98     # 測試彈夾的資訊 99     # print(dan_jia)100 101     # 測試槍的資訊102     # print(ak47)103 104     # 老王拿槍105     lao_wang.na_qiang(ak47)106 107     # 測試老王對象108     # print(lao_wang)109 110     # 建立一個敵人111     gebi_laowang = Person("隔壁老王")112 113     for i in range(10):114     # 老王拿槍打隔壁老宋115         lao_wang.kai_qiang(gebi_laowang, zi_dan, dan_jia)116         print(lao_wang)117         print(gebi_laowang)118         time.sleep(2)119         print("")120 121 if __name__ == ‘__main__‘:122     main()

 

執行結果:

老王的血量:100,槍的資訊:AK47, 彈夾的資訊:24/30, 他開槍了,嘣!隔壁老王的血量,90,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:23/30, 他開槍了,嘣!隔壁老王的血量,80,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:22/30, 他開槍了,嘣!隔壁老王的血量,70,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:21/30, 他開槍了,嘣!隔壁老王的血量,60,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:20/30, 他開槍了,嘣!隔壁老王的血量,50,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:19/30, 他開槍了,嘣!隔壁老王的血量,40,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:18/30, 他開槍了,嘣!隔壁老王的血量,30,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:17/30, 他開槍了,嘣!隔壁老王的血量,20,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:16/30, 他開槍了,嘣!隔壁老王的血量,10,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍...老王的血量:100,槍的資訊:AK47, 彈夾的資訊:15/30, 他開槍了,嘣!隔壁老王已經死亡...

 

python-老王開槍

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.