python 練習 小李飛刀大戰伏地魔)

2021-10-22 18:59:50 字數 4113 閱讀 9950

檢視詳細資訊的**

# 小李飛刀大戰伏地魔

# 通過物件來實現

# 小李將飛刀放入刀袋中,然後帶著刀帶去找伏地魔,小李飛刀從刀帶拿出飛刀飛伏地魔,伏地魔受到傷害

# 需要的類:

# person

# -屬性

# -name 姓名

# -hp 生命值

# -kb 刀帶

# -方法

# -帶刀帶(take_kb)

# -放刀(put_knife_in_kb)

# -取刀(get_knife)

# -飛刀(fly_knife)

# -受傷(掉血 injured)

## knife_bag

# 屬性:-name 名字 -size 容量 -bag 放刀

# 方法:

# -放刀 put_in_bag

# -取刀 get_knife

# knife

# 屬性:

# -name 名字

# -attack 傷害

# 方法:

# -傷害 damage

class

knife

:'''

定義飛刀的類

'''def__init__

(self, name, attack)

: self.name = name # 刀名

self.attack = attack # 攻擊力

defdamage

(self, other)

:'''

造成傷害的方法

'''other.injured(self.attack)

def__str__

(self)

:return f'攻擊力為 '

# kn = knife('小刀', 10)

# print(kn)

# knife_bag

# 屬性:-name 名字 -size 容量 -bag 放刀

# 方法:

# -放刀 put_in_bag

# -取刀 get_knife

class

knife_bag

:def

__init__

(self, name, size)

: self.name = name # 名字

self.size = size # 容量

self.bag =

# 裝刀的容器

defput_in

(self, kf)

:'''

把刀放入到袋中

'''# 判斷滿沒滿

iflen

(self.bag)

< self.size:

defget_knife

(self)

:'''

從袋中取刀

'''iflen

(self.bag)==0

:return

none

return self.bag.pop(

)def

kn_count

(self)

:return

len(self.bag)

def__str__

(self)

:if self.bag:

return f', 容量是, 現在有把'

else

:return f', 容量是, 現在是空的'

# kb = knife_bag('nike刀帶', 10)

# kb.put_in(knife('小刀', 10))

# print(kb.get_knife())

# print(kb.get_knife())

# print(kb)

# person

# -屬性

# -name 姓名

# -hp 生命值

# -kb 刀帶

# -方法

# -帶刀帶(take_kb)

# -放刀(put_knife_in_kb)

# -取刀(get_knife)

# -飛刀(fly_knife)

# -受傷(掉血 injured)

class

person

(object):

'''表示人的類'''

def__init__

(self, name)

: self.name = name # 名字

self.hp =

100# 生命值

self.kb =

none

# 刀袋

defput_knife_in_kb

(self, kf, kb)

:'''

將刀放入刀袋中

'''kb.put_in(kf)

deftake_kb

(self, kb)

:'''將刀帶帶到身上'''

self.kb = kb

defget_knife

(self)

:'''取刀'''

if self.kb:

return self.kb.get_knife(

)def

fly_knife

(self, other)

:# 取刀

kf = self.get_knife(

)# 檢查刀有沒有

if kf:

# 飛 kf.damage(other)

definjured

(self, attack)

:'''受傷'''

self.hp -= attack

if self.hp <0:

self.hp =

0def

__str__

(self):if

not self.hp:

return f' 生命值 已掛'

if self.kb:

return f' 生命值 帶著 '

return f' 生命值 什麼也沒拿'

# 建立乙個人

# hero = person('李尋歡')

# hero.put_knife_in_kb(knife('小刀', 10), kb)

# hero.take_kb(kb)

# print(hero)

# 建立兩個人

hero = person(

'小李'

)npc = person(

'伏地魔'

)# 建立刀袋

kb = knife_bag(

'nike刀帶',20

)# 小李,向袋中裝刀

for i in

range(20

):hero.put_knife_in_kb(knife(

'小刀',10

), kb)

# 將刀袋帶在身上

hero.take_kb(kb)

print

(hero)

print

(npc)

print

('-'*60

)# 發起攻擊

我接住了小李飛刀的飛刀 1

no.1 誰能接住小李飛刀的飛刀,我就嫁給他。自從小林仙兒放出這句話以後,三個月以來,找李尋歡決鬥的人已經有八百二十七個。這八百二十七個人當中,李尋歡只接受了六個人的挑戰。因為這六個人都是李尋歡非常想給他們來一刀的人。這六個人當中,至少有三個人排在百曉生的最厲害人物排行榜前二十名。六場決鬥,六次出刀...

直復營銷和小李飛刀

直復營銷貴不貴?看你怎麼算。至少有兩方面可以看 1 人均成本。攤到乙個人頭上,乙份直郵加一次 怎麼著也得好幾塊錢出去。相比號稱乙個人幾分錢的戶外 電視等傳統 這個數字當然太貴了。這是廣告界傳統的cpm的演算法,就是所謂的每千人成本。可是再想想,如果目標使用者把握得準,比如說有的企業在服務歷史中留心收...

小李飛刀 刷題第四彈!

time 2019 02 01 昨晚其實刷了題來著,但是沒有解出來,哭泣!但是,今天重新寫了下,解出來咯 所以今天的題量要增加咯 我會加油的!14.最長公共字首 難度 簡單 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 我的解題 如下 class solution de...