2017年12月28日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 demo「跳一跳」。

这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。分数越高,那么在好友排行榜更加靠前。有个大神用Python脚本来跑分,并共享了源码。通过 Python 脚本自动运行,让你轻松霸榜。

大神博客:https://wangshub.github.io

知乎专栏:https://zhuanlan.zhihu.com/p/32452473

github地址:https://github.com/wangshub/wechat_jump_game

github周榜第9!

2017-12-29 : 增加图像识别,更新自动化运行脚本,感谢github上的binderclip
2017-12-30 : 请将安卓手机的usb调试模式打开,》开发者选项》USB调试
2017-12-30 : 根据大家反馈:1080屏幕距离系数1.393,2k屏幕为1
2017-12-30 : 不要刷太高哦,容易分数清零,已经被官方关注了;
2017-12-30 : 已经适配很多安卓分辨率的手机,在项目里自己寻找配置文件哦;
2017-12-31 : 各路大神相继加入,改进识别和代码结构;
2017-12-31 : 微信已经开始检测分数异常高的情况了,请大家不要跑太高哦

 

工具介绍

  • Python 2.7
  • Android 手机
  • Adb 驱动
  • Python Matplot绘图

原理说明

  1. 将手机点击到《跳一跳》小程序界面;
  2. 用Adb 工具获取当前手机截图,并用adb将截图pull上来
adb shell screencap -p /sdcard/1.png
adb pull /sdcard/1.png .
  1. 用matplot显示截图(已经图像识别处理)
  2. 用鼠标点击起始点和目标位置,计算像素距离 (已经图像识别处理)
  3. 根据像素距离,计算按压时间;
  4. 用Adb工具点击屏幕蓄力一跳;
adb shell input swipe x y x y time

如果你是 iOS

  1. 运行安装好的 WebDriverAgentRunner
  2. 将手机点击到《跳一跳》小程序界面
  3. python3 wechat_jump_iOS_py3.py
  4. 依次点击起始位置和目标位置,实现蓄力一跳
  5. 打开 python3 wechat_jump_iOS_py3.py,根据蓄力一跳的精准情况更改其中的 time_coefficient,直到获得最佳取值

步骤

  • 安卓手机打开USB调试,设置》开发者选项》USB调试
  • 电脑与手机USB线连接,确保执行adb devices可以找到设备id
  • 界面转至微信跳一跳游戏,点击开始游戏
  • 运行python wechat_junp_auto.py,如果手机界面显示USB授权,请点击确认

我的屏幕是1920*1080,距离系数为1.35,如果是别的分辨率,暂时需要修改一下代码中的距离系数.

实验结果

只要有耐心,你就是王者

TODO

可以对拉上来的图片进行颜色分割,识别小人和目标中心点,这样就不需要手动点击自动弹跳。
事实证明,机器人比人更会玩儿游戏。

 

————————–我是华丽的分割线————————–

发布了大神的脚本,有人反映说python不会安装,adb不会安装,pip不会安装等各种问题

Python

因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。

要开始学习Python编程,首先就得把Python安装到你的电脑里。安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。

2.x还是3.x

目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的,因为现在Python正在朝着3.x版本进化,在进化过程中,大量的针对2.x版本的代码要修改后才能运行,所以,目前有许多第三方库还暂时无法在3.x上使用。

为了保证你的程序能用到大量的第三方库,我们的教程仍以2.x版本为基础,确切地说,是2.7版本。请确保你的电脑上安装的Python版本是2.7.x,这样,你才能无痛学习这个教程。

首先,从Python的官方网站python.org下载最新的2.7版本

然后,运行下载的MSI安装包,在选择安装组件的一步时,勾上所有的组件:

特别要注意选上pipAdd python.exe to Path,然后一路点“Next”即可完成安装。

默认会安装到C:\Python27目录下,然后打开命令提示符窗口,敲入python后,会出现两种情况:

情况一:

看到上面的画面,就说明Python安装成功!

你看到提示符>>>就表示我们已经在Python交互式环境中了,可以输入任何Python代码,回车后会立刻得到执行结果。现在,输入exit()并回车,就可以退出Python交互式环境(直接关掉命令行窗口也可以!)。

情况二:得到一个错误:

‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。

这是因为Windows会根据一个Path的环境变量设定的路径去查找python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选Add python.exe to Path,那就要手动把python.exe所在的路径C:\Python27添加到Path中。因为我的是d:\python所以在下图中7的位置看到的是D盘。包括后面安装的adb、pip都在D盘

如果你不知道怎么修改环境变量,建议把Python安装程序重新运行一遍,记得勾上Add python.exe to Path

ADB

Win10怎么配置ADB环境?Win10怎么安装ADB工具?这想必是很多安卓玩家都关心的问题。特别是Nexus设备的用户,大量的刷机、玩机操作都需要借助ADB和Fastboot命令来实现。Win10要如何配置ADB和Fastboot呢?今天就让小编来分享一些方法吧。

Win10 adb配置 Win10 adb工具
Win10配置ADB教程

首先,我们需要正确安装ADB/Fastboot驱动。一般来说,Win10联网的话,会自动安装ADB和Fastboot驱动,并不需要用户担心。如何让Win10自动安装ADB驱动?安卓机开启USB调试后连接到电脑,就会自动安装了。如果Win10网络情况不好,或者其他一些原因,没有自动安装好ABD/Fastboot驱动,就需要手动安装了。Google官方的驱动可以点此下载(需要科学上网)。除了Google官方驱动外,这款第三方的“Universal Adb Driver”(点击下载)也是可以一试的。

安装好驱动后,下载下面的这款ADB工具包,解压出来后,不要动!无视压缩包中的安装方法!这个方法并不适用于Win10!

软件名称: adb工具包
软件版本: 1.0.32
软件大小: 608KB
软件授权: 免费
适用平台: Win2000 WinXP Win2003 Vista Win8 Win7
下载地址:

在Win10中,系统目录和之前有所不同,所以旧的安装方法是无效的。要如何在Win10使用ADB工具呢?其实很简单,进入解压出来的文件的那个文件夹,键盘按住“Shift”键,然后鼠标右键单击文件夹的空白处。这时候,就可以看到弹出的菜单,有一个“在此处打开命令窗口”的选项,点击它!然后,就可以看到CMD弹出来了。

Win10 adb配置 Win10 adb工具
把文件解压出来

Win10 adb配置 Win10 adb工具
在文件夹空白处按Shift键和鼠标右键,选择“在此处打开命令窗口”

Win10 adb配置 Win10 adb工具
这样子开启的CMD,已经可以直接进行adb命令操作了

这时候出现的CMD,可以直接执行ADB命令。驱动安装好了的话,可以直接在CMD中输入ADB和Fastboot的命令来进行各种操作。如何验证?最简单的方法就是,确认安卓机已经以USB调试的状态连接电脑后,在这个CMD窗孔中输入以下命令:

Adb devices

如果看到CMD显示一串字符,后面还有一个“device”的字样,那就说明安卓机已经成功以USB调试的形式连接到了Win10中,在Win10也可以通过ADB来对安卓进行各种操作了。

Win10 adb配置 Win10 adb工具
​CMD中显示如此字样,意味着安卓机已经成功连接adb了

如果要验证Fastboot的话,也是同样的道理。关机后,长按电源键和下音量键进入bootloader界面,然后再用USB连接到电脑。在CMD窗口中输入以下命令“

Fastboot devices

看到CMD显示一串字符,说明安卓机已经成功在fastboot的状态下连接到Win10了。

Win10如何配置ADB环境?Win10如何使用ADB工具?Win10如何配置fastboot?相信看到这里安卓玩家们都已经明白了。如果想要刷机和修改系统的朋友,不妨试试这个方法吧。

PIP

正常情况下,安装Python时候pip会已经安装好,但是不排除pip未配置的。

pip是用来方便地管理Python的第三方包的,由于此前玩Python仅仅是浅尝辄止,用的是python(x,y),但是这里并不代表你想用什么包都能从里面找到的,所以我把python(x,y)卸了,然后重新装了个Python2.7.5,准备尝试一下用pip来下载想要的包。

不过pip也有一个麻烦之处,如果电脑不能联网怎么办?

之后再考虑这个问题,先在此记录一下我是如何安装pip的。本文参考百度经验《如何在win7下安装python包工具pip》,网上有很多pip安装教程,但感觉这个写的是最简明易懂的,只需要三步走就ok了。下面我会把我的安装步骤记录下来,也是按照“三步走”来的,不过我要对这个百度经验做些补充和完善,把我中途遇到问题的解决方法也一并发上来。

step1:

(1)安装python2.7.5,这里我选择安装在C盘根目录下。

(2)安装完毕后C盘会生成一个叫“python27”的文件夹。

(3)打开python27,会发现该目录下存在一个叫Scripts的文件夹,点开Scripts,会发现里面有一系列和easy_install有关的文件。

(4)打开python27,会发现该文件下有一个叫python.exe的文件,将该文件的路径添加至环境变量PATH(在系统变量一栏下添加)。如果不做这一步,则cmd命令是无法识别“python”指令的。能不能成功识别该指令分别会出现如下状况:

a.给cmd输入“python”,不能成功识别:

b.给cmd输入“python”,能成功识别:

 

step2:

(1)现在cmd下就可以使用“python”指令了,一路cd到easy_install.exe的根目录下。

这里需要强调一点,cmd默认路径是从“C:\Users\ASUS>”开始的,如果想转到D盘E盘F盘方便,以E盘为例,直接输入“E:”就可以了,但如何转到C盘呢?

这里用的一个指令是“cd\”,如下:

(2)一路cd索引到easy_install.exe所在的地方,执行指令“easy_install.exe pip”:

则Scripts文件夹下会出现一系列和pip有关的文件,其中有pip.exe。

 

 

step3:

(1)和之前处理python.exe的方法一样,将pip.exe的路径也添加到环境变量PATH中。

(2)在cmd下输入“pip”,如果能识别”pip”指令,则说明pip安装成功了。

也就是说会出现如下的画面:

B站UP主发布的视频教程