首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微信跳一跳,Python挂一挂

这段时间很流行开挂啊,玩吃鸡有各种挂,透射挂、路飞挂层出不穷!电脑病毒也各种开挂,现在的病毒都不流行偷拍、删文件了,人家直接在你电脑上放个挖矿软件,比特比、以太坊、EOS纷至沓来!

而前不久微信官方前脚刚发布了跳一跳小游戏,萌萌哒码农们就发布了各种各样的挂,有基于Python的,有基于NodeJS的,还有基于Java、Golang的。。。。。真是各路程序员,各显神通啊!而其中Python挂一挂最引人注目,这还要得利于它强大的第三方库啊!今天我们就来捋一捋,看看这些挂到底是什么样的原理。

点进去看一下README文档,可以看到这个工具是基于ADB的,这个ADB常常用于案桌开发,当你的手机开启了USB调试功能,并连到电脑上时,就可以通过ADB软件来控制手机了!如果要在Python程序中调用shell命令,直接用os.system或os.exec就好了。

然后打开github repo上的commons文件夹,看里面的文件名大概可以猜到这里的程序是用来给手机截屏用的,看一下内容,果不其然。而resources/images文件夹里的内容大概就是截图的集合了,之前作者在这里保存了很多张jpg图片,现在做成了一个gif文件,看起来也清爽多了!

返回上一级后点开wechat_jump_auto.py 文件,发现作者现在都把思路写出来了,那我就不废口舌,直接贴出来好了!

=== 思路 ===

核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,

根据两个点的距离乘以一个时间系数获得长按的时间

识别棋子:靠棋子的颜色来识别位置,通过截图发现最下面一行大概是一条

直线,就从上往下一行一行遍历,比较颜色(颜色用了一个区间来比较)

找到最下面的那一行的所有点,然后求个中点,求好之后再让 Y 轴坐标

减小棋子底盘的一半高度从而得到中心点的坐标

识别棋盘:靠底色和方块的色差来做,从分数之下的位置开始,一行一行扫描,

由于圆形的块最顶上是一条线,方形的上面大概是一个点,所以就

用类似识别棋子的做法多识别了几个点求中点,这时候得到了块中点的 X

轴坐标,这时候假设现在棋子在当前块的中心,根据一个通过截图获取的

固定的角度来推出中点的 Y 坐标

最后:根据两点的坐标算距离乘以系数来获取长按时间(似乎可以直接用 X 轴距离)

读者朋友们可以根据这一段描述,仔细看看人家是怎样是怎么用代码实现的,说不定下一个爆款手游开挂程序就是你做出来的!

(说句题外话,之前我还以为是用深度学习做出来的)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180110G10E9300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券