import time
class
person
(object):
"""人的類"""
def__init__
(self, name)
:super
(person, self)
.__init__(
) self.name = name # 記錄人的名字
self.gun =
none
# 預設人是沒有槍的
self.hp =
100# 預設人的血量100
defanzhuang_zidan
(self, dan_jia_temp, zi_dan_temp)
:"""把子彈安裝到彈夾內"""
dan_jia_temp.baocun_zidan(zi_dan_temp)
defanzhuang_danjia
(self, ak47, dan_jia)
:"""把彈夾安裝到槍內"""
ak47.baocun_danjia(dan_jia)
defna_qiang
(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 ==
100:
return
"%s的血量,%d, 他沒有槍"
%(self.name, self.hp)
elif self.hp >0:
return
"%s的血量,%d,他沒有槍,他正在受到炮火的襲擊,小心!他中了一槍..."
%(self.name, self.hp)
else
:return
"%s已經死亡..."
% self.name
defkai_qiang
(self, diren, zi_dan_temp, dan_jia_temp)
:"""打敵人"""
diren.hp -= zi_dan_temp.sha_shang_li # 減血
dan_jia_temp.zidan_list.pop(
)# 減子彈
class
gun(
object):
"""槍類"""
def__init__
(self, name)
:super
(gun, self)
.__init__(
) self.name = name # 記錄槍的型別
self.danjia =
none
# 預設槍中是沒有彈夾的
defbaocun_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
class
danjia
(object):
"""彈夾類"""
def__init__
(self, max_num)
:super
(danjia, self)
.__init__(
) self.max_num =max_num # 彈夾的最大容量
self.zidan_list =
# 用列表儲存子彈的數量
defbaocun_zidan
(self, zi_dan_temp)
:"""彈夾儲存子彈"""
def__str__
(self)
:return
"彈夾的資訊:%d/%d"%(
len(self.zidan_list)
, self.max_num)
class
zidan
(object):
"""子彈類"""
def__init__
(self, sha_shang_li)
:super
(zidan, self)
.__init__(
) self.sha_shang_li = sha_shang_li # 子彈的殺傷力
defmain()
:"""用來控制整個程式的流程"""
# 建立老王
lao_wang = person(
'老王'
)# 建立槍
ak47 = gun(
"ak47"
)# 建立彈夾
dan_jia = danjia(30)
# 建立子彈
zi_dan = zidan(10)
for i in
range(25
):# 老王把子彈安裝到彈夾內
lao_wang.anzhuang_zidan(dan_jia, zi_dan)
# 老王把彈夾安裝到槍中
lao_wang.anzhuang_danjia(ak47, dan_jia)
# 測試彈夾的資訊
# print(dan_jia)
# 測試槍的資訊
# print(ak47)
# 老王拿槍
lao_wang.na_qiang(ak47)
# 測試老王物件
# print(lao_wang)
# 建立乙個敵人
gebi_laowang = person(
"隔壁老王"
)for i in
range(10
):# 老王拿槍打隔壁老宋
lao_wang.kai_qiang(gebi_laowang, zi_dan, dan_jia)
print
(lao_wang)
print
(gebi_laowang)
time.sleep(2)
print(""
)if __name__ ==
'__main__'
: main(
)
Python案例練習 老王開槍
import time class person object 人的類 def init self,name super person,self init self.name name 記錄人的名字 self.gun none 預設人是沒有槍的 self.hp 100 預設人的血量100 defan...
Python 之 老王開槍 練習
知識點 這篇部落格是對前面python基礎的乙個複習,更應該學到的是如何設計一系列的動作,或者說是設計程式 1.分析有哪些類,並且建立 人 槍 彈夾 子彈 2.物件的建立 3.各個類的屬性設定 4.類的方法設計,由里向外 1 人拿槍 eg 1彈夾裝子彈 2 槍裝彈夾 3.人拿槍 2 人開槍 eg.1...
python基礎練習之老王開槍
class people object def init self,name self.name name self.gun none self.hp 100 def load zidan self,dianjia temp,zidan temp 把子彈裝進彈夾 dianjia temp.anzhu...