
{"ops":[{"insert":"Fate/Grand Order(非的肝不过欧的)作为索尼为了拯救自己不倒闭而开发的面向月厨的骗氪养成抽卡爆肝游戏,居然没有像隔壁《阴阳师》的自动战斗系统(看看别人现在都自带脚本了)。毕竟是懒得肝,就不妨写一个脚本来肝算了,省时省力。\n\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"开始:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n一个战斗脚本,其实可以算是AI的初步了。虽然只是暴力算出造成最大伤害的方案orz。\n\n我们在这里不考虑释放 技能 、 宝具 和 暴击星 这三样非常重要的东西。。。只单纯考虑 克制、 抵抗 和不同种类卡打出的伤害,目标就就是算出伤害最高的组合。\n\n如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地\n\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"指令卡:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/2f3e5c6c72c52a33d78e8fda21e7fd5dae069771.jpg","width":550,"height":275,"size":96599,"status":"loaded"}}},{"insert":"\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"战斗界面:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n要开始,我们首先要分析界面的组成。首先下面是一排指令卡,每张指令卡都有卡的种类(黄色框)和“克制”和“抵抗”的标记(黄色圈)之类的东西。那我们可以把每张指令卡视为一个 对象,然后把它的特点抽象出来。我们可以知道每张卡都有一个 坐标 ,一个 类型 (绿蓝红),一种状态 (无/克制/抵抗),还有在点按是的 顺序 (1/2/3)和 伤害系数 (这个具体有一张表)。\n\n"},{"attributes":{"color":"#ff6699","bold":true},"insert":"所以我们可以这样做:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/db9bd705d265489616b6cab0cb888ed21da4d72b.jpg","width":1762,"height":632,"size":189177,"status":"loaded"}}},{"insert":"\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"识别与匹配:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/d0b23cfefc6eb888b6691fd6688efe64d2e167fa.jpg","width":1800,"height":708,"size":213022,"status":"loaded"}}},{"insert":"\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"计算法则:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/2de9f437db1a1ac51b6dc388ab50f8cc1cb078dd.jpg","width":366,"height":490,"size":172193,"status":"loaded"}}},{"insert":"\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"实现:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/8cf10278a3a758a2bfaef1e532f0d1f72ce277c7.jpg","width":1468,"height":1490,"size":379666,"status":"loaded"}}},{"insert":"\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"防封:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n其实方法很简单,加入随机的点按,和不同的间隔(等待时间)就可以了,点按每张卡有位置的变化,点每张卡之间有变化的间隔,和一些故意的“误触”应该就没问题,其实还可以加上一些长度不同的滑动也是可以的,简单来说就是一堆随机函数而已\n\n"},{"attributes":{"color":"#ff6699"},"insert":"整合"},{"attributes":{"header":2},"insert":"\n"},{"insert":"\n简单来说就是把上面的一堆代码整合到防封\n\n其实方法很简单,加入随机的点按,和不同的间隔(等待时间)就可以了,点按每张卡有位置的变化,点每张卡之间有变化的间隔,和一些故意的“误触”应该就没问题,其实还可以加上一些长度不同的滑动也是可以的,简单来说就是一堆随机函数而已\n\n"},{"attributes":{"color":"#f85a54","bold":true},"insert":"整合:"},{"attributes":{"blockquote":true},"insert":"\n"},{"insert":"\n简单来说就是把上面的一堆代码整合到一起就可以了一起就可以了\n\n"},{"attributes":{"class":"normal-img"},"insert":{"native-image":{"alt":"read-normal-img","url":"https://b2.sanwen.net/b_article/3118ba06e45c92d917b3d729890b2df78d359524.jpg","width":550,"height":275,"size":105687,"status":"loaded"}}},{"insert":"\n开始界面\n\n识别到这个界面然后点按“Attack”\n\n结束界面\n\n识别到“与从者的羁绊”终止脚本\n\n中间就是上面所提到的了。也即是一个不停的循环,直到“结束”界面才终止。有什么其他的就到时候再补充\n文章原地址:https://blog.csdn.net/meiguanxi7878/article/details/100893698\n文章原作者:Python编程KK\n阿曜ちゃん对部分图片进行修改,使其更加清晰。\n"}]}
标签: