1. 程式人生 > >老王開槍源碼(Mr.Wang_shooting.py)

老王開槍源碼(Mr.Wang_shooting.py)

python 老王 開槍源碼

class person(object): """docstring for 人類""" def __init__(self, name): super(person, self).__init__() self.name = name #用於記錄人的名字 self.gun = None #用於保存槍對象的引用 self.hp = 100 #用於保存玩家的血量 def install_bullet(self,dan_jia_temp,zi_dan_temp): ‘‘‘把×××撞到彈夾中‘‘‘ #彈夾.保存×××(×××) dan_jia_temp.sava_bulllet(zi_dan_temp) def install_cartridge(self,gun_temp,dan_jia_temp): ‘‘‘把彈夾安裝到槍中‘‘‘ #槍.保存彈夾(彈夾) gun_temp.save_cartridge(dan_jia_temp) def with_a_gun(self,gun_temp): ‘‘‘老王拿起一把槍‘‘‘ self.gun = gun_temp def __str__(self): if self.gun: return "%s的血量為:%d,他有槍%s"%(self.name,self.hp,self.gun) else: if self.hp>0: return "%s的血量為:%d,他沒有槍"%(self.name,self.hp) else: return "%s已掛..."%self.name def pull_trigger(self,enemy): ‘‘‘讓槍打敵人‘‘‘ #槍.開火(敵人) self.gun.fire(enemy) def decrease_hp(self,killability): ‘‘‘根據殺傷力,掉相應的血量‘‘‘ self.hp -= killability class gun(object): """docstring for 槍類""" def __init__(self, name): super(gun, self).__init__() self.name = name #用於記錄槍的類型 self.cartridge_list = None #用於記錄彈夾對象的引用 def save_cartridge(self,dan_jia_temp): ‘‘‘用一個屬性保存彈夾對象的引用‘‘‘ self.cartridge_list = dan_jia_temp def __str__(self): return "槍的信息:%s"%(self.name) def fire(self,enemy): ‘‘‘槍從彈夾中取出一發×××,然後讓這發×××去射擊敵人‘‘‘ #先從彈夾中取出××× zi_dan_temp = self.cartridge_list.pop_bullet() #讓這個×××去射擊敵人 if zi_dan_temp: #×××.打中敵人 zi_dan_temp.hit(enemy) else: print("彈夾中沒有×××") class cartridge(object): """docstring for 彈夾類""" def __init__(self, max_num): super(cartridge, self).__init__() self.max_num = max_num #用來記錄彈夾的最大容量 self.bullet_list = [] #用來記錄所有×××的引用 def sava_bulllet(self,zi_dan_temp): ‘‘‘將×××對象保存‘‘‘ self.bullet_list.append(zi_dan_temp) def __str__(self): return "彈夾的信息為%d/%d"%(len(self.bullet_list),self.max_num) def pop_bullet(self): ‘‘‘彈出上面的那顆××ב‘‘ if self.bullet_list: return self.bullet_list.pop() else: return None class bullet(object): """docstring for ×××類""" def __init__(self, killability): super(bullet, self).__init__() self.killability = killability #用於記錄×××的殺傷力 def hit(self,enemy): ‘‘‘讓敵人掉血‘‘‘ #敵人.掉血(一顆×××的威力) enemy.decrease_hp(self.killability) def main(): ‘‘‘用來控制整個函數的流程‘‘‘ #1.創建老王對象 Mr_Wang = person("老王") #2.創建槍對象 ak47 = gun("ak47") #3.創建彈夾對象 dan_jia = cartridge(20) #4.創建一些×××對象 for i in range(15): zi_dan = bullet(10) #5.老王把×××安裝到彈夾 #老王.安裝×××到彈夾中(彈夾,×××) Mr_Wang.install_bullet(dan_jia,zi_dan) #6.老王把彈夾安裝到槍 #老王.安裝彈夾到槍中(槍,彈夾) Mr_Wang.install_cartridge(ak47,dan_jia) #test:測試彈夾的信息 print(dan_jia) #test:測試槍的信息 print(ak47) #7.老王拿槍 #老王.拿槍(槍) Mr_Wang.with_a_gun(ak47) #test:測試老王對象 print(Mr_Wang) #8.創建敵人對象 trump = person("特蘭普蠢蛋") print(trump) #9.老王用槍射擊敵人 #老王.扣扳機(敵人) for i in range(0,10): Mr_Wang.pull_trigger(trump) print(dan_jia) print(trump) if __name__ == ‘__main__‘: main() [結果輸出] [root@os-python python]# python shooting.py 彈夾的信息為15/20 槍的信息:ak47 老王的血量為:100,他有槍槍的信息:ak47 特蘭普蠢蛋的血量為:100,他沒有槍 彈夾的信息為14/20 特蘭普蠢蛋的血量為:90,他沒有槍 彈夾的信息為13/20 特蘭普蠢蛋的血量為:80,他沒有槍 彈夾的信息為12/20 特蘭普蠢蛋的血量為:70,他沒有槍 彈夾的信息為11/20 特蘭普蠢蛋的血量為:60,他沒有槍 彈夾的信息為10/20 特蘭普蠢蛋的血量為:50,他沒有槍 彈夾的信息為9/20 特蘭普蠢蛋的血量為:40,他沒有槍 彈夾的信息為8/20 特蘭普蠢蛋的血量為:30,他沒有槍 彈夾的信息為7/20 特蘭普蠢蛋的血量為:20,他沒有槍 彈夾的信息為6/20 特蘭普蠢蛋的血量為:10,他沒有槍 彈夾的信息為5/20 特蘭普蠢蛋已掛...

老王開槍源碼(Mr.Wang_shooting.py)