1. 程式人生 > 實用技巧 >iOS 三國殺 Ver.LOG

iOS 三國殺 Ver.LOG

MOSAD hw1

程式碼概況

  • 父類
    父類的屬性和方法

    父類屬性/方法型別/返回型別描述
    countryString國家
    blood_valueNS整形血量
    energy_valueNS整形法力值
    attackNS整形攻擊力
    nameString名字
    armedNS整形是否裝備武器
    flexNS整形是否在閃避狀態
    poisonNS整形是否中毒
    sheldNS整形是否施加鈍化
    grandNS整形是否進入超然狀態
    init();instancetype初始化英雄
    PKOneUnit();void己方回合
    get___();-返回對應值
    managrow();void自然恢復法力值
    poisioned();void中毒傷害清算
    change__(,);voidbuff、他傷清算
    weapon();void裝備武器
    skill();void小技能
    ultimate(Hero*);void終極技能

    每個英雄都固有這些屬性.

  • 子類
    由於具體實現的程式碼較繁雜,這裡只給出子類的多型體現。

英雄weaponskillultimate
呂布attack+= 200; armed = 1-500 damge ; energy_value -= 80
張飛-blood_value += 200; energy_value -= 20blood_value -= 200; attack== 200;
諸葛亮-flex = 1; energy_value -= 20; //only for one turn400damage; blood_value += 200;
曹操attack+= 200; armed = 1-attack += 10;target.attack -= 10 ; energy_value -= 80
孫權-attack += 5; blood_value += 200; energy_damge -= 20;target.poisoned = 1
趙雲attack+= 150; armed = 1 blood_value += 200-grand = 1; poison = 0; energy_value -= 100;
司馬懿-sheld = 1; energy_value -= 20600 damge ; energy_value -= 50
孫策attack+= 100; armed = 1; blood_value += 300-400 damge ; energy_value -= 80; blood_value += 200;
陳宮-energy_value - = 30; blood_value += 300;600 damge ; energy_value -= 80; blood_value -= 300;
張遼armed = 1; blood_value += 100; attack += 100-attack *= 2; energy_value -= 90;

基於父類,每一個子類都有不同的weapon、skill、ultimate,這裡體現了多型與繼承。

戰鬥機制

  • 父類中包含一個PKOneUnit();
  • 所有子類繼承父類Hero的PKOneUnit();
  • 在PKOneUnit()中,會對己方和敵方的當前狀態進行結算,然後概率裝備weapon以及發動skill和ultimate,其中skill、ultimate需要滿足energy_value要求才可以發動。在PKOneUnit()執行完畢後,會得到一個雙方的當前狀態。在main函式中進行判斷,若有一方先出現血量 <= 0 的情況, 則判定敗北;另一種情況是回合數超過10,雙方被判平手。
  • 關於資料隱祕性、封裝性,則體現在各個屬性儲存在父類當中,若需呼叫則必須使用對應的get_();函式,外界無法直接取得。

結果截圖

具體戰鬥Log