class person:
"""人的類"""
def __init__(self,name):
super(person,self).__init__()
self.name=name
self.gun=none #用來儲存槍物件進行引用
self.hp=100
def anzhuang_zidan(self,dan_jia_temp,zi_dan_temp):
"""把子彈裝到彈夾中"""
dan_jia_temp.baocun_zidan(zi_dan_temp)
def anzhuang_danjia(self,gun_temp,dan_jia_temp):
"""把彈夾安裝到槍中"""
gun_temp.baocun_danjia(dan_jia_temp)
def naqiang(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 kou_ban_ji(self,diren):
"""讓槍發射子彈去打敵人"""
self.gun.fire(diren)
def xiao_xue(self,sha_shang_li):
"""生命值預設100"""
self.hp-=sha_shang_li
class gun:
"""槍類"""
def __init__(self,name):
super(gun,self).__init__()
self.name=name #用來記錄槍的型別
self.danjia=none #用來記錄彈夾物件的引用
def baocun_danjia(self,dan_jia_temp):
"""用乙個屬性來儲存這個彈夾物件的引用"""
self.danjia=dan_jia_temp
def __str__(self):
if self.danjia:
return "槍的資訊為:%s, %s"%(self.name,self.danjia)
else:
return "槍的資訊為:%s,這把槍中沒有彈夾"%self.name
def fire(self,diren):
"""槍從彈夾中獲取一發子彈,然後讓這發子彈去擊中敵人"""
#先從彈夾中取子彈
#彈夾.彈出一發子彈()
zidan_temp=self.danjia.tanchu_zidan()
if zidan_temp:
zidan_temp.dazhong(diren)
else:
print("彈夾中沒有子彈了。。。。")
class danjia:
"""彈夾類"""
def __init__(self,max_num):
super(danjia,self).__init__()
self.max_num=max_num#用來記錄彈夾的最大容量
self.zidan_list=#用來記錄所有子彈的引用
def baocun_zidan(self,zi_dan_temp):
""""""
def __str__(self):
return "彈夾的資訊為:%d/%d"%(len(self.zidan_list),self.max_num)
def tanchu_zidan(self):
"""彈出最上面的那顆子彈"""
if self.zidan_list:
return self.zidan_list.pop()
else:
none
class zidan:
"""子彈類"""
def __init__(self,sha_shang_li):
super(zidan,self).__init__()
self.sha_shang_li=sha_shang_li#這顆子彈的威力
def dazhong(self,diren):
diren.xiao_xue(self.sha_shang_li)
def main():
"""用來控制整個程式的流程"""
#1.建立老王物件
laowang=person("王寶強")
#2.建立乙個槍物件
ak47=gun("ak47")
#3.建立彈夾物件
dan_jia=danjia(20)
#4.建立一些子彈
for i in range(15):
zi_dan=zidan(10)
#5.老王把子彈安裝到彈夾中
laowang.anzhuang_zidan(dan_jia,zi_dan)
#6.老王把彈夾安裝到槍中
laowang.anzhuang_danjia(ak47,dan_jia)
#7.老王拿槍
laowang.naqiang(ak47)
#print(laowang)
#8.建立敵人
gebi_laosong=person("宋吉吉")
print(gebi_laosong)
#9.老王開槍打敵人
laowang.kou_ban_ji(gebi_laosong)
for i in range(10):
laowang.kou_ban_ji(gebi_laosong)
print(gebi_laosong)
print(laowang)
if __name__=='__main__':
main()
執行效果:
物件導向(基礎題目 射擊)
package com.svse.seven2 1 編寫乙個槍類,有乙個成員變數用於儲存彈夾中的子彈,有乙個成員方法用於發射,每呼叫一次發射功能,彈夾中的子彈數減少1。2 修改上體,增強發射功能。呼叫發射功能時首先判斷彈夾中還有子彈麼,如果有,在螢幕上顯示 呯!並將彈夾中的子彈量減少1 如果沒子彈量...
Shoot射擊遊戲
shoot射擊遊戲專案二 1.需求分析 a 設計乙個父類 超類 並且讓6個物件繼承超類,測試 b 給超類新增構造方法 讓6個物件分別呼叫超類 c 設定物件陣列,進行測試 d 在6個子類 派生類中重寫 e 畫窗體 2.技術分析 重寫和過載 面試筆試題 重寫 override 發生在父子類中,方法名相同...
python物件導向 cs遊戲示例
usr local bin python3 coding utf 8 class role object n 123 類變數 name 我是類name def init self,name,role,weapon,life value 100,money 15000 建構函式 在例項化時做一些類的初...