跳一跳小游戏刷分解读

前言

去年1月9日微信退出了小程序,疯狂刷屏。

12月29号微信更新后,推出了小游戏,也是占据了各大公众号。 作为官方Demo 跳一跳也是一时风头无二。

现在一些新东西出来,技术圈很快就会有相应的Python脚本出来,像以前的支付宝AR红包,这次也一样,带着疑问上淘宝搜了下,居然有一些挂在淘宝上卖外挂

跳一跳小游戏刷分解读

居然打上人工智能的旗号,也是没谁了。

使用

先上大神的github跳一跳脚本地址:https://github.com/wangshub/wechat_jump_game
本人记录, 随便刷下意思下

跳一跳小游戏刷分解读

具体使用很简单,如果有Python环境的话,只需要
1.clone代码
2.按手机移动适配文件,手机打开usb调试和运行远程模拟点击
3.启动小程序跳一跳,运行脚本。
具体可以参考github的README.md.
当然经过本人测试,还是有误差,几十分就会完蛋。通过观察发现都是跳的距离过小,这里修改下按压时间,增加50ms,轻松上Top 1
android用户使用wechat_jump_auto.py这个自动脚本,修改修时间

跳一跳小游戏刷分解读

ios用户使用wechat_jump_auto_iOS.py这个脚本,修改下时间:

跳一跳小游戏刷分解读

原理

主要是通过adb命令获取手机截图,通过截图色差分析,得出起始点距离和按压时间,再通过adb 命令点击棋子。
难点:通过图像色差确定图形位置和距离,计算棋子需要的按压时间。
这里自动脚本主要使用了subprocess子进程模块和PIL图像模块,虽然原理简单,不过需要图像分析还是有一定难度的。

涉及的adb命令

1.获取手机配置信息
adb shell wm size 获取手机分辨率信息
adb shell getprop ro.product.model 获取手机型号
adb shell wm density 获取手机密度
2.图片相关
adb shell screencap -p /sdcard/autojump.png 截图到文件
adb pull /sdcard/autojump.png 拉取手机中的图片到电脑
3.定位和测试相关
adb shell input swipe 500 500 501 501 2000 模拟长按事件。

以上。

欢迎长按下图,识别图中二维码或者扫一扫关注我的公众号:


跳一跳小游戏刷分解读