Fate/Grand Order(非的肝不过欧的)作为索尼为了拯救自己不倒闭而开发的面向月厨的骗氪养成抽卡爆肝游戏,居然没有像隔壁《阴阳师》的自动战斗系统(看看别人现在都自带脚本了)。毕竟是懒得肝,就不妨写一个脚本来肝算了,省时省力。
开始
一个战斗脚本,其实可以算是AI的初步了。虽然只是暴力算出造成最大伤害的方案orz。
我们在这里不考虑释放
技能 、 宝具 和 暴击星
这三样非常重要的东西。。。只单纯考虑
克制、 抵抗
和不同种类卡打出的伤害,目标就就是算出伤害最高的组合。
指令卡
战斗界面
要开始,我们首先要分析界面的组成。首先下面是一排指令卡,每张指令卡都有卡的种类(黄色框)和“克制”和“抵抗”的标记(黄色圈)之类的东西。那我们可以把每张指令卡视为一个
对象
,然后把它的特点抽象出来。我们可以知道每张卡都有一个
坐标
,一个
类型
(绿蓝红),一种
状态
(无/克制/抵抗),还有在点按是的
顺序
(1/2/3)和
伤害系数
(这个具体有一张表)。
所以我们可以这样做:
识别与匹配
计算法则
实现
防封
其实方法很简单,加入随机的点按,和不同的间隔(等待时间)就可以了,点按每张卡有位置的变化,点每张卡之间有变化的间隔,和一些故意的“误触”应该就没问题,其实还可以加上一些长度不同的滑动也是可以的,简单来说就是一堆随机函数而已233
整合
简单来说就是把上面的一堆代码整合到一起就可以了
开始界面
识别到这个界面然后点按“Attack”
结束界面
识别到“与从者的羁绊”终止脚本
中间就是上面所提到的了。也即是一个不停的循环,直到“结束”界面才终止。有什么其他的就到时候再补充吧OWO