Python案例練習 老王開槍

2021-10-04 21:50:59 字數 3385 閱讀 6196

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...