歡迎點擊右上角關注小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限于Python實戰演練、PDF電子文檔、面試集錦、學習資料等。
Fate/Grand Order(非的肝不過歐的)作為索尼為了拯救自己不倒閉而開發的面向月廚的騙氪養成抽卡爆肝遊戲,居然沒有像隔壁《陰陽師》的自動戰鬥系統(看看别人現在都自帶腳本了)。畢竟是懶得肝,就不妨寫一個腳本來肝算了,省時省力。
開始一個戰鬥腳本,其實可以算是AI的初步了。雖然隻是暴力算出造成最大傷害的方案orz。
我們在這裡不考慮釋放 技能 、 寶具 和 暴擊星 這三樣非常重要的東西。。。隻單純考慮 克制、 抵抗 和不同種類卡打出的傷害,目标就就是算出傷害最高的組合。
指令卡戰鬥界面
要開始,我們首先要分析界面的組成。首先下面是一排指令卡,每張指令卡都有卡的種類(黃色框)和“克制”和“抵抗”的标記(黃色圈)之類的東西。那我們可以把每張指令卡視為一個 對象,然後把它的特點抽象出來。我們可以知道每張卡都有一個 坐标 ,一個 類型 (綠藍紅),一種狀态 (無/克制/抵抗),還有在點按是的 順序 (1/2/3)和 傷害系數 (這個具體有一張表)。
所以我們可以這樣做:
識别與匹配
計算法則
實現
防封
其實方法很簡單,加入随機的點按,和不同的間隔(等待時間)就可以了,點按每張卡有位置的變化,點每張卡之間有變化的間隔,和一些故意的“誤觸”應該就沒問題,其實還可以加上一些長度不同的滑動也是可以的,簡單來說就是一堆随機函數而已233
整合簡單來說就是把上面的一堆代碼整合到一起就可以了
開始界面
識别到這個界面然後點按“Attack”
結束界面
識别到“與從者的羁絆”終止腳本
中間就是上面所提到的了。也即是一個不停的循環,直到“結束”界面才終止。有什麼其他的就到時候再補充吧OWO
總結這應該是我搞過最大最複雜的一個項目了,也是第一次接觸到一點OOP。然而這個項目還是偏實用性,畢竟沒有什麼高端的,或者更高效率的算法,這也應該是以後要改進的地方。
以上就是這篇文章的全部内容了,希望本文的内容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對小編的支持。
,