python基礎練習之老王開槍

2021-09-11 23:00:27 字數 2558 閱讀 7090

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.anzhuangzidan(zidan_temp)

def load_danjia(self,gun_temp,danjia_temp):#把彈夾裝進槍裡

gun_temp.anzhuangdanjia(danjia_temp)

def take_gun(self,take_temp):

self.gun = take_temp

def __str__(self):

if self.gun:

return "%s有槍,%s"%(self.name,self.gun)

else:

if self.hp>0:

return "%s沒有槍,血量為%d"%(self.name,self.hp)

else:

return "%s已掛,不要浪費子彈了"%self.name

def kai_qiang(self,baddly):

self.gun.fire(baddly)

def diaoxue(self,harm):

self.hp -= harm

class gun(object):

def __init__(self,name):

self.name = name

self.danjia = none

def anzhuangdanjia(self,danjia_temp):

self.danjia = danjia_temp

def fire(self,baddly):

zidan_temp = self.danjia.tanchu_zidan()

if zidan_temp:

zidan_temp.dazhong(baddly)

else:

print("彈夾中沒有子彈了。。。。")

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):

self.max = max

self.box = #儲存子彈

def anzhuangzidan(self,zidan_temp):

def tanchu_zidan(self):

if self.box:

return self.box.pop()

else:

return none#彈夾空了返回乙個空值

def __str__(self):

return "彈夾裝載%d/%d"%(len(self.box),self.max)

class zidan(object):

def __init__(self,harm):

self.harm = harm

def dazhong(self,baddly):

baddly.diaoxue(self.harm)

def main():

laowang = people("laowang")

gun = gun('ak47')

laowang.take_gun(gun)

danjia = danjia(20)

for i in range(5):

zidan = zidan(10)

laowang.load_zidan(danjia, zidan)

laowang.load_danjia(gun,danjia)

print(laowang)

#print(gun)

#print(danjia)

laosong = people("laosong")

for j in range(3):

print(laosong)

laowang.kai_qiang(laosong)

print(laowang)

if __name__ == '__main__':

main()

執行結果:

laowang有槍,槍的資訊為:ak47,彈夾裝載5/20

laosong沒有槍,血量為100

laowang有槍,槍的資訊為:ak47,彈夾裝載4/20

laosong沒有槍,血量為90

laowang有槍,槍的資訊為:ak47,彈夾裝載3/20

laosong沒有槍,血量為80

laowang有槍,槍的資訊為:ak47,彈夾裝載2/20

Python 之 老王開槍 練習

知識點 這篇部落格是對前面python基礎的乙個複習,更應該學到的是如何設計一系列的動作,或者說是設計程式 1.分析有哪些類,並且建立 人 槍 彈夾 子彈 2.物件的建立 3.各個類的屬性設定 4.類的方法設計,由里向外 1 人拿槍 eg 1彈夾裝子彈 2 槍裝彈夾 3.人拿槍 2 人開槍 eg.1...

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案例練習 老王開槍

import time class person object 人的類 def init self,name super person,self init self.name name 記錄人的名字 self.gun none 預設人是沒有槍的 self.hp 100 預設人的血量100 defan...