Johnny850807 / Coding-GYM

自己菜鳥階段時在練習Java物件導向、設計模式時,所設計的題庫,此專案庫目前用來讓我的同學/學生 (欠調教的) 們提交程式碼來進行Review,欲參考OOP題目者可直接到Projects區觀看,題目皆(85%)擁有示範解答程式碼。ISSUE放的都是Code Review嘴砲。(物件導向設計學分兩階段→JAVA→設計模式)
24 stars 6 forks source link

Decorator Pattern : 神奇寶貝屬性相剋 #48

Open Johnny850807 opened 7 years ago

Johnny850807 commented 7 years ago

難度:1

現在你必須撰寫神奇寶貝的屬性相剋系統, 想想神奇寶貝屬性相剋與裝飾者模式彼此的關聯, 思考為何使用裝飾者,以及如何實踐。

你需要寫一個類別 Pokemon 神奇寶貝 每個神奇寶貝都會有它的屬性,而且屬性是可以擁有各種組合的 例如:水系、水+草系、火+飛行系+雷系

不同組合 在 面對 不同屬性傷害時 所得的最終傷害結果會不同

例如 水系草系, 所以草系的攻擊對水系的神奇寶貝的傷害會加倍。 但是如果一個神奇寶貝擁有 水系+火系 ,則在面臨草系的攻擊時, 首先因為其具有水系特性,依然害怕草系,所以傷害會先加倍, 然而因為火系對草系具有免疫的效果,傷害又會減半,最後則回到了原傷害。

你將需要撰寫一個系統能夠動態的處理這些組合,並且擁有擴充性

並且在main 進行測試 首先創造一隻您自訂的神奇寶貝,使其擁有水系及火系。 然後使用自定義方法讓神奇寶貝受到草系傷害(威力100)。 其最後傷害必須為 100 (100*2/2=100)。

並印出計算的過程 例如 ( 草系 vs 水系 傷害減半 )

你無須寫太多屬性 至少只需要 水、草、火 形成各種組合 進行測試

範例: 水火怪受到草系攻擊..初始威力100 草對水..傷害加倍 草對火..傷害減半 傷害最終判定為... 100