一、程式設計思維:
以物件導向的思維設計《天龍八部》遊戲技能,使得技能效果在增加或者減少時,遊戲技能整體框架不改變,僅僅增加或者減少技能效果
二、思路流程圖如下:
三、變成框架實現**:
"""天龍八部技能系統
設計原則:
"""class
impacteffect:
"""影響效果
隔離技能釋放器 與 具體的影響效果
"""def
impact(self):
#要求子類必須實現,否則報錯
raise
notimplementederror()
class
lowerdefense(impacteffect):
"""降低防禦力
"""def
__init__
(self,distance,ratio):
#距離self.distance =distance
#比例self.ratio =ratio
defimpact(self):
print("
降低%d公尺內,目標的防禦力為%d.
"%(self.distance,self.ratio))
class
lowerspeed(impacteffect):
"""降低速度
"""def
__init__
(self, time, ratio):
#時間self.time =time
#比例self.ratio =ratio
defimpact(self):
print("
降速為%.1f.時間是:%d
" %(self.ratio, self.time))
class
damage(impacteffect):
"""傷害生命
"""def
__init__
(self, value):
#傷害值
self.value =value
defimpact(self):
print("
傷害%d生命
" %(self.value))
class
skilldeployer:
"""技能釋放器
"""def
__init__
(self,name):
self.name =name
#配置釋放器,儲存當前技能具有的所有影響效果物件
self.__list_impact = self.__config_deployer
()
def__config_deployer
(self):
"""配置釋放器
:return:
"""#
*. 定義配置
#1. 讀取相應的影響效果
#2. 建立影響效果物件
#依賴注入
dict_skill_config =
#["lowerdefense(10,0.5)","damage(30)"]
#根據鍵(技能名稱)獲取值(影響效果列表)
list_impact_name =dict_skill_config[self.name]
#list_impact =
#for item in list_impact_name:
## 建立影響效果物件,並加入到列表中
#return [eval(item) for item in
list_impact_name]
defgenerate_skill(self):
"""生成技能
:return:
"""print(self.name,"
釋放啦!")
#執行所有影響效果
for item in self.__list_impact
:
#編碼期間:認為呼叫的是影響效果(父類impacteffect)
#執行期間:由於建立的是子類物件(傷害生命damage...),所以執行的是子類方法.
item.impact()
#--------測試---------------
#建立技能物件
wei_tuo_chu = skilldeployer("
韋陀杵")#
釋放技能
wei_tuo_chu.generate_skill()
xiang_long_18_zhang = skilldeployer("
降龍十八掌")
xiang_long_18_zhang.generate_skill()
Python之物件導向 物件導向基礎
一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...
Python 基礎之物件導向
封裝繼承 類和型別 多型意味著就算不知道變數所引用的物件型別是什麼,還是能對它進行操作,而它也會根據物件 或者類 型別的不同而表現出不同的行為。程式得到了乙個物件,但是並不知道它是怎麼實現的 它可能有多種 形狀 繫結到物件特性上面的函式稱為方法 method 對於乙個變數x來說,我們不需要知道他是字...
Python 基礎之物件導向
python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節。類似於php和perl...