微信小程序一笔画完辅助实现

前景提要:国庆期间本科好友聚会,有2个撒狗粮的在玩这个小游戏,并试图引其他人入坑,随果断中招,被吊打。由于以前看别人写过跳一跳的辅助,遂想起这玩意也应该有可以有辅助的。所以网上百度,发现都是修改金币的工具,这不符合我的追求自动化的要求。所以就想着自己撸一发。所以有此文,仅学习交流使用,代码见文章最后。

开发环境:android6.0手机(打开usb调试),win10(有安装adb),java运行环境

辅助关键点:

    1.对截取的图像做边缘截取

    2.对截取图像识别成对应的二位数组

    3.一笔画路径规划

    4.使用adb shell 命令模拟用户点击

详细步骤:

    1.连接手机到电脑打开usb调试,手机运行一笔画完

    2.截取当前屏幕图像,把图像导出到本机电脑

微信小程序一笔画完辅助实现_第1张图片

    3.通过观察发现图的大小是不会超出如下圈定的范围,所以对其进行初步裁剪(初步裁剪的目的主要是为了排除其他颜色对图片之后操作的影响)

                                                                                       微信小程序一笔画完辅助实现_第2张图片                  微信小程序一笔画完辅助实现_第3张图片

4.接下来就是要对图片进行进一步的截取了,但是这时候你会发现没一关所占的大小是不一样的,每一个小方块的大小也是不一样的。所以这里就到了第一个关键点了。如何精确的按照边缘来截取图片了(开始我也考虑过用python来做,但是当我百度了一下我发现要不是比较复杂,要不然就是我看不懂,没学过py。然后我就想到了之前一段时间很火的微信跳一跳不是有java版的辅助嘛,所以我就去找了找,我发现他们大多都是对特征颜色判断来识别目标的),这也就是上一步初步截取的时候要排除其他的干扰的颜色。

   现在有思路了,我们要对图片进行颜色的判断来截取带,截取的办法就是对图片的上,下,左(右间隔与左一样,因为图片是居中的)

空白区的裁剪,如下图我们对其以5px的增量来判断是否到灰色区域,并在一次增量来一行选取多个点来判断,以防出现判断不准确。

                                                            微信小程序一笔画完辅助实现_第4张图片                   微信小程序一笔画完辅助实现_第5张图片

5.截取到边缘图片之后,另外一个关键点是对图片转换为二维数组坐标,但是这里有个问题就是每一次的图片中小方格在行和列上可能是不一样的,所以就导致小方格的大小不一样,所以就不能简单的直接用突变的长宽来除以一个固定值。

  这时候我相到了一种办法,就是第3步时我们得到了初步截取的图片,然后进行了边缘截取。经过对多关卡的分析,我发现边缘截取时对于左边的截取一共只有9种值,所以这里我就这9中值每种情况的小方格大小进行了计算。之后的边缘图片小方格的大小就可以通过左边截取值不同来确定。

 这时候我们我们只要把小方格变为二维数组就很方便了,对于灰色的小方格在对应二维数组中存 1 对于白色存 0 表示障碍  对于其他颜色我们用来得到图中小喵,这就是后面路劲规划的起始点 存 0 。

6.得到二维数组后,接下来就是寻找小喵的移动路径了,这里用了贪心算法,通过递归栈的调用来实现,判断循序是 上 左 下 右。然后就得到了一条路径的坐标。

7.得到路径之后,接下来就要把二维坐标路径转换为屏幕上对应要点击的位置,由于上面右小方格的大小,截取的位置,所以就不难了。

8.接下来就是对屏幕坐标进行模拟点击了,为了方便自动点击,我们把屏幕坐标转换为对应的adb shell命令,以点击屏幕 400 500 为列,对应的adb命令为 adb shell input tap 400 500  。把这些命令写入一个win下的bat批处理文件中来帮我们自动执行。

9.在 一关通过后的之后关卡的操作一样,所以写以个bat来循序执行。

最后的效果就是用户进入一笔画玩,然后点击bat文件,就自动来帮你游戏了,你连下一关都不用点。

ps1:注意开启手机屏幕常亮,当出错后点击重玩即可(即保证截图为初始状态)

ps2:其实还有些地方可以改进,还可以更自动化一些,但是我懒,有问题请留言。

最主要的来了,代码下载地址:https://download.csdn.net/download/qq_34435022/10740143(老版本,在200多关的时候就不行了)

最新代码更新在github上,github下载地址:https://github.com/zhongyiqwer/yibihuawan(新版本,优化了代码)

ps:本来是想直接传上来的,但是最近没有积分了啊,所以就1积分下载吧,你要是真没有积分就留言吧

你可能感兴趣的:(微信辅助,Android)