python class類的屬性應用及init初始化實踐 ---勇者斗惡龍


  最近在熟悉python的基礎語法,剛好老師布置了個課后作業感覺挺有意思的,就記錄下來了學習過程。

題目如下:

 

 

剛拿到題目就想到了init 初始化屬性,還列了下思路:(ps:notepad++寫的比較糙)

 

 

 最終成品就長這樣,編碼的時候還遇到用A的攻擊攻擊A的情況,后來修正了一波,勉強算是符合老師的要求了。里面的數據沒考慮合理性, 有軟測的可以幫忙跑跑找找bug。也歡迎完善指正~~

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2020/4/11:13:51
 4 # @Author  : 翼風語
 5 
 6 import random
 7 class hero():
 8     def __init__(self, hp, ap, wq=0):
 9         '''
10         set default param
11         :param hp: 生命
12         :param ap: 攻擊
13         :param wq: 武器傷害
14         '''
15         self.hp = hp
16         self.ap = ap
17         self.wq = wq
18 
19     def hurt(self,value):
20         self.hp = self.hp - value
21         print("勇者受到了 "+str(value)+" 點傷害,生命還有"+str(self.hp))
22         if(self.hp <= 0):
23             print("一切都是命中注定,是否卷土重來?")
24             raise
25 
26 class dinosaur():
27     def __init__(self, hp, ap):
28         """
29         set default param
30         :param hp:
31         :param ap:
32         """
33         self.hp = hp
34         self.ap = ap
35     def hurt(self,value):
36         self.hp = self.hp - value
37         print("惡龍受到了 "+str(value)+" 點傷害,生命還有"+str(self.hp))
38         if(self.hp <= 0):
39             print("恭喜你完成了‘世界和平’任務")
40             raise
41 
42 if __name__ == "__main__":
43     su = hero(200,10,25)
44     mk = dinosaur(1000,3)
45     n = 1
46     while True:
47         i = random.randint(0,5) # 傷害上限高
48         j = random.randint(1,3) # 輸出比較穩
49         try:
50             print("-------round:%s------" % str(n))
51             su.hurt(i+mk.ap)
52             mk.hurt(j+su.ap+su.wq)
53             n= n+1
54         except:
55             break

   最后貼上執行效果圖:在第二十七回合 --世界和平了

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM