《千軍破》武將技能關係推測與討論
假設1,按照客服所說,羣技能、不可替代技能優先級高於其他技能;
假設2,羣技能自身的優先級根據技能等級排序,例如妖術3>妖術2>妖術1;
假設3,羣技能優先級相同,例如千軍破=落雷=火燒連營=八門金鎖=妖術=春秋斬=鬼神驚;
假設4,羣技能優先級高於其他不可覆蓋技能,例如千軍破>攻心;
假設5,名將技能優先級高於其他將技能優先級,例如威嚇>火箭;
假設6、主動技能不和被動技能進行優先級比較,例如趙雲的鐵血在判定時只會和陷坑比較,不會去和反亂比較(假設趙雲打上了反亂);
假設8,名將技能每名名將僅能擁有唯一,即不能出現呂布同時有千軍破、落雷、威嚇、鐵血、連弩,但是呂布可以同時有反亂、虎嘯、槍陣、陷坑等技能;
假設9,技能攻擊、反擊的傷害高於普通攻擊、反擊。
一、技能的設計
技能表:技能id,技能名稱,技能圖片id,技能描述,技能屬性id
技能圖片表:技能圖片id,技能圖片
技能屬性表:技能屬性id,技能兵種限制,技能範圍id,主動被動,發動概率
技能優先級表:guid,技能id,優先級
技能效果表:技能效果id,效果對象,技能攻擊效果,技能防禦效果
技能-屬性關係表:guid,技能id,屬性,關係類型id,效果
關係類型表:關係類型id,關係類型
【說明】
技能表的描述可能不全面,但是最關心的問題已經包含在裡面了。其中有,技能的兵種限制(例如,陸遜火燒連營只能弓兵使用)、技能的攻擊效果(例如,增加多少攻擊、增加多少防禦)、技能是主動技能還是被動技能(例如,奮鬥是被動技能增加步兵攻擊,虎嘯是主動技能騎兵發動)、技能攻擊範圍(例如,反亂只能攻擊1個對象,千軍破攻擊9個對象)、技能攻擊範圍類型(例如,妖術是十字攻擊,鬼神驚是X攻擊),技能發動概率(例如,落雷發動概率是多少,春秋斬發動概率是多少),屬性點對技能的影響(例如,增加武力可以提高槍陣的發動概率,千軍破和任何屬性沒有關係)等
技能-效果關係表描述技能對應的效果,允許一個技能有多個效果(例如,神射提高弓兵的攻防)。
技能-屬性關係表描述哪些技能對屬性有依賴,其中關係類型id關聯關係類型表,查找是針對發動概率還是具體效果,效果爲關係類型的加成數值。
二、武將的設計
此處只考慮武將-技能關係
玩家武將-技能表:guid,玩家武將id,技能id
玩家-武將表:guid,玩家id,玩家武將id
玩家武將表:玩家武將id,對應武將id,......
初始武將具有兩個技能,則在玩家武將-技能表中insert兩條記錄即可。記錄玩家武將id和技能id。
依次遍歷此列表
獲取列表當前技能發動概率(此爲調用方法,分別根據技能、技能-屬性加成、裝備加成來計算);
根據概率設置模擬範圍;
利用蒙特卡洛方法來模擬技能發動與否的判斷(此處肯定有一個方法來根據概率進行發動與否的模擬,是否蒙特卡洛方法僅爲本人猜測);
判斷技能是否發動
是{記錄發動技能,跳出循環}
獲取發動技能id,如果列表中技能都沒有發動,則按照普通攻擊處理
獲取技能id(或是普通攻擊)的效果
根據效果進行攻防計算四、針對猜測算法的說明
我們關注的地方是:
1、根據優先級排列,存入列表
2、判斷技能是否發動 是{記錄發動技能,跳出循環}
這個決定了具有不可覆蓋技能的武將是否要打上其他主動技能
基於,當前的算法,我們以前的想法是可以推翻的,即具有不可覆蓋技能的武將可以打上其他主動技能
接下來,根據假設,我們獲得優先級爲落雷>攻心>四面楚歌。如果諸葛亮同時還會罵聲,則四面楚歌和罵聲的優先級不在本文考慮。
按照算法,先判斷落雷是否發動。如果落雷發動,我們就能看到落雷的效果。
如果落雷不發動,則判斷攻心。攻心不發動依次判斷四面楚歌。
如果都沒有技能發動,就按照普通攻擊進行。
我們假設落雷概率是0.01,攻心概率是0.1,四面楚歌概率是0.1,則發動落雷概率是0.01,發動攻心概率是(1-0.01)*0.1,發動四面楚歌概率是(1-0.01)*(1-0.1)*0.1。
假設趙雲同時有鐵血、陷坑、槍陣等技能。
在戰鬥時,趙雲被地方攻擊,則槍陣不發動。
接下來,根據假設,我們獲得優先級爲鐵血>陷坑。
按照同諸葛亮的判斷,我們假設鐵血發動概率是0.4,陷坑發動概率是0.3,則發動鐵血概率是0.4,發動陷坑概率是(1-0.3)*0.4。
這裡,我們還有一個假設要提出:加入武將的技能都爲主動技能,則武將不能保證一次攻擊能至少發動一個主動技能,一次被攻擊能至少發動一個被動技能。
綜上,在攻擊時,諸葛亮能發動技能的機會肯定是要大於每個技能單獨的概率,因爲增加了判斷的次數。這也就保證了攻擊時高於普通攻擊的概率要比只有一個落雷提高了;在反擊時,趙雲發動技能反擊的概率也比僅有鐵血提高了。
五、結論
主動技能2個的好處大於1個,但是並不是越多越好。因爲技能本身也需要被動技能來確保效果的提升。我個人優先推薦名將在自身技能的基礎上學習1個主動技能和陷坑。並不推薦武將全部主動技能,哪怕是諸葛亮呂布這樣的。
六、問題
上述論證都是基於同客服諮詢的優先級假設。客服確認這個優先級有同研發證實。我在這裡是在完全相信客服的職業操守、職業能力的前提下。
如果客服證明的這個優先級假設是錯的,則算法從根本上推翻。變爲另外一個方向的結論。
七、推論
武將學習主動技能應根據自身已有技能的限制、陣型限制以及玩家的整體規劃來進行。
例如,陸遜這個武將,技能是火燒連營。我個人推薦學習不受兵種限制的技能。因爲火燒連營只能弓兵發動。如果陸遜統帥高也可以考慮學習火箭。
例如,諸葛亮這個武將,技能是落雷,可以學習攻心、四面楚歌等。