用python玩微信跳一跳系列之大结局

声明

本系列博客只是以微信跳一跳游戏作为增热点的样本,用以学习实践计算机视觉处理技术和python的练习,无意破解或者开挂,切勿用作它途。

前言

经过前面几篇博文的介绍和实践,并参考github上的跳一跳讨论(已经非常完善了),如果不想额外利用多余的图像处理库如opencv,我们可以利用像素遍历的方法得到棋子和棋盘的位置,当然,参考我在前面的实践,如果采用opencv,则识别和自动测距的手段更多也更加准确,在这些准备工作完成之后,我们就在手机上打开跳一跳实践一下最终的效果。

基本准则

经过观察和验证,在目前的版本下,以下几点基本准则是成立的:

棋子跳跃角度是固定的,与水平线夹角28.22°;换言之,只需得到棋子棋盘的相对横坐标或者相对纵坐标即可得到两者之间的准确距离,这可以使得脚本大大缩减,无需准确得到棋子棋盘的中心位置,甚至不需要对棋子和棋盘的位置进行分辨,这是微信跳一跳这个小游戏最大的基本原则,也是其最大的漏洞;

棋子的跳跃速度和距离是线性关系;

是否多次连续击中靶心是判读开挂的最重要依据,这几乎决定了防ban的策略。

使用USB线连接手机和电脑

在手机上启用USB调试,在开发者模式下,无需root;

用usb数据线(注意不是充电线,两者长的一个模样)连接手机和电脑;

电脑中cmd窗口下输入adb devices,此时可以看到自己的设备,无法看到自己设备时,查看手机USB调试是否打开;PC端是否安装手机驱动。

使用无线WiFi连接手机和电脑

确保手机和电脑在同一个路由下,在手机上点击wifi,查找手机的ip地址;

用数据线把手机与PC相连,执行以下命令:adb tcpip 5555, 成功提示:restarting in TCP mode port 5555;

可以把手机断开连接,从此手机就自由了;

在PC端cmd命令行输入:adb connect 192.168.0.128:5555 (:5555可省略),提示connected to 172.16.4.37:5555

输入adb devices,得到以下提示说明连接成功,可以进行各种调试了

List of devices attached

192.168.0.128:5555 devices

调试完成之后,可以输入如下的命令断开连接:adb disconnect 192.168.0.128:5555

运行脚本

打开手机跳一跳,使其处于游戏画面,运行脚本,ok。

考虑到开挂的疑虑,这里就不放代码了,请各位同学原谅。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180220A0568Y00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励