下载 App

【屠龙之技终有用】战棋辅助工具的实现

修改于2019/10/165466 浏览综合
10.13 就一些问题作出必要说明:
Q1:这属于外挂吗?
A1:我认为不是,没有修改数据也没有自动操作,本质上是截图并分析图片,而已。
Q2:Over Power吗?
A2:并不,很多大佬的实力可能超乎你们的想象。如果程序本身没有太大问题,35波的平均消除就是稳定在38左右,@嫑逝 大佬的均消41可以说是到了匪夷所思的境地了。程序胜过人很多吗?这未免太低估人的智慧了。
Q3:会发布吗?
A3:暂时不会,程序本身存在许多问题,比如识别失败和错误的问题。其次,这个工具会造成不公平吗?我不清楚,尚需考量。
====================
【屠龙之技】论消除规则 中,我们讨论了消除的一般规则,这距离预测消除结果只有一步之遥。
实际上一步(一次交换或一次拖出)的消除过程是这样的:
交换:交换怪物位置 -> 消除于交换点处 -> ①下落 -> ②补充 -> ③一般消除 -> 如③进行则跳转至①
拖出:拖出怪物 -> ①下落 -> ②补充 -> ③一般消除 -> 如③进行则跳转至①
既然③的规则已经明确,只有②补充的规则尚待讨论。在没有石头和特殊边界干扰的情况下(如有,情况会变得较复杂,我不大清楚为什么这样设计,甚至认为这可能是一个不明显的bug),补充规则为从下到上从左到右依次补充,在消除王和解谜中具有一个确定的补充队列,而其它模式中,我们最常熟知的是秘境可以通过返回来刷掉落,因此推测一般的消除队列为随机生成无限队列的而非一个固定的循环队列。因此,我们并不能预知一个确切的结果,而可以获得一个统计结果。最有价值的统计参数当然是期望或者说平均值。
为什么选择战棋呢?因为战棋是单步的,我们只需使用暴力方法,穷举所有可消除的操作,并获得对应的形态经验/消除数的均值,取最大者,就能知道应该如何消除。那么,如何实现呢?
0.实现一个召唤与合成(核心部分)
没错,首先我们要做一个程序来模拟召唤与合成,能指定沙盘怪物,能够进行正常的交换、拖出过程并给出消除数。在已知消除规则的情况下,这一步并不难,只是一个体力活。
1.获取沙盘
手动录入当然是一个可选项,但是可能眼瞎……尤其是有野蛮人和886之后……(而且慢)
1.1 获取画面
因为我只会c++,这一过程需要在Windows上进行,操作目标是一个安卓模拟器或投屏软件,获得这一窗口的画面可以使用winapi,具体过程不赘述,总之是以窗口名搜索对应句柄,以句柄获得BITMAP,由于下一步仍需处理,以一个cv::Mat来存储数据。
这一图像是包含边框的,不过边框宽度一般恒定,裁掉即可。
1.2 图像分析
模板匹配可能太慢,而且需要预先有大量模板,故采用特征检测的方式——检测沙盘上的格子的位置,当然先提取边缘(canny),然后检测矩形吗?或许还是偏慢,个人实现起来需要1s左右,干脆先统计各行各列中边缘像素的数量从而得到可能的格子边缘所处的行、列,然后去匹配出格数和最左上角的格子的坐标,这样就能根据坐标截取每一格内部的图像。速度可以提高到100ms左右。
这里需要用到的数据是,画面高h,沙盘为n*n,则每格间距为精确的floor(0.9*h/n),其中边框约为floor(0.9*h/n)/10。
1.3 获取沙盘怪物
从第一格起,将后续格子中的图像与其对比,使用L2范数作为衡量相似度的指标,相似则认为是同一种怪物,进行同种标记,直到棋盘中的怪物都被标记。
2.最优策略
获取沙盘后,当然穷举就行了,问题在于补充的不确定性,要随机多少次取均值呢?目前采用的方法是连续十次均值波动不超过0.1时,认为这一均值可以代表消除数的期望。
每隔一段时间(0.5s)获取一次画面并获取沙盘,如果检测成功且与上次不同则给出得到最大平均消除数的操作。
这一思路并不复杂,但是做起来还是挺麻烦的,目前的效果是这样:
召合为什么要停服
首先,我不是什么“官方人员”,不过是一个玩家而已。当然啦,比起大多数玩家,我可能有更多的和官方交流的机会,所以我在这里凭借自己的个人理解,给大家讲讲我对停服和一些事情的看法。 Q1:为什么召合1要停服? A1: 燃灯提及的客观原因有: (1)召合1有很久在持续亏损了; (2)由于开发工具老旧,很多技术性问题无法解决 对于任何网络游戏,这两点都是致命性的,召合1的停服只是时间问题。 Q2:召合1停服
167 赞
66 回复
关于魔王消除程序的一些说明截图
关于魔王消除程序的一些说明
如某人所愿,我来剖腹证粉了,开心吗? 我真的非常不愿意发这个贴子,因为我真的很忙,我弃坑召合很久了,即使在玩召合的时候,你们可以去问,我有没有加入过任何一个玩家组织?玩家组织的群我只加过两个,都是和萌新教关系比较松散的,萌新教的消除群。名利,我真的气笑了,官方的活动我甚至都懒得参与,有一次我跟橙子说让她给我整个毛球,她都惊讶我居然没有(当然后来厚脸皮要了一个) 我为召合写攻略(https://ww
34 赞
56 回复
矿战消了个豹子码截图
矿战消了个豹子码
今天自动消除出了个豹子码[表情_大笑] 有缘的盆友来加个召友:11207270 #游戏日常
2 赞
零氪新人冲榜的干货!截图
零氪新人冲榜的干货!
首先,我是在前辈攻略的基础上,再加上自己很多次的冲榜经验写给零氪新人的一点心得体会,希望能帮到喜爱这个游戏而又兜兜没钱的兄弟! 感谢这游戏的设计者们,真心良心,我是2026年过年期间冲榜的,钻石七天里收了靠5万,真的太大方了!所以有充足的资源! 1,这游戏的最重要的资源就是体力,上面图片里都是还在游戏的大佬,每天可以领取10-15每个人的体力还有几十万的金币!对新人冲榜有很大优势!每天买2次体力就
39 赞
88 回复
帮真萌新和老萌新捋一捋发育思路截图
帮真萌新和老萌新捋一捋发育思路
先说结论:开局随便用什么家族,推普通关卡10章,然后把设置里的不自动合成家族勾上,然后把送的钻石抽掉,先用S卡璐鹿兽/超威蓝猫+S卡恶魔锤手+任意背景板(推荐喵斯特)推图,利用宝箱积分和熔炼凑SSS战斗鸡,然后用战斗鸡+恶魔锤手+喵斯特(或者其他挂件)并推图至101,开始进入游戏中后期。 当前养成图镇楼: 本次召合重新开服,全部需要从头开始,特在此帮各位真萌新和老萌新捋一下发育思路。 针对真的新人
392 赞
145 回复
关于装备、宝物属性的选择截图
关于装备、宝物属性的选择
为了解答游戏群里萌新的疑问,专门写这篇攻略。我的游戏ID:1119748,565级,申请都会通过。 本文主要从几个方面来描述装备、宝物属性的选择问题:1、推图;2、秘境;3、魔王;4、补充说明。 1、推图 推图部分比较简单,破防是推图的核心思路(你的家族强度>怪的防御),一般使用射手推图(用战士或肉盾,属于大佬的骚操作而已)。当前推图射手推荐战斗鸡或火芯灵。推图留2套宝物,单魔强一套或单物强一套(
精华
79 赞
54 回复
这个瞬间移动的有啥技巧吗,前期不会打了,打到第五波就一定会掉血,打到第九波血量就剩一半了。紫卡白卡120左右截图
这个瞬间移动的有啥技巧吗,前期不会打了,打到第五波就一定会掉血,打到第九波血量就剩一半了。紫卡白卡120左右
9 回复
怪物全+10、建筑全满级后,木头和铁的用途截图
怪物全+10、建筑全满级后,木头和铁的用途
刚刚完成怪物全部+10,之前建筑也全部满级。目前来说没有紧迫的铁和木头的需求了,那溢出的木头和铁要怎么用呢?个人一点思考,供大家参考。 铁可以继续生产元气,木头则生产为铁(但绝不要买木头生产铁,性价比极低),材料商店出来以后,可以选择将元气出售,获取材料市场的货币,买红卡。 我将不同元气的出售价格列了个表,详见图。大家可以看到6级红色元气的出售价格,相对来说性价比最高。也就是说每一个铁可以获得0.
17 赞
21 回复
关于战旗一些学习方向截图
关于战旗一些学习方向
只有学习方向没有攻略 告诉你应该学习什么 新手期无上棋神20-30阶之前 三幻神就够用 具体的看别人写的攻略 冰糖果果写的很好了可以用到 70阶 这个是传送门 https://www.taptap.cn/moment/623529594829407058?share_id=fa645b56332c&utm_medium=share&utm_#source=copylink 初步离开新手村30-50
投票
18 赞
18 回复
07:34
day5 怪物乱入 大力数据参考截图
day5 怪物乱入 大力数据参考
530级