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

  • 2020 年 4 月 11 日
  • 筆記

  最近在熟悉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

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