对普通玩家来说,这款游戏可以验证自己是否是“手残”,明明每一步都跳得小心翼翼,结果往往游戏结束得很快。看看自己几十分、百来分的成绩,再看看别人晒出来的两三百、三四百的成绩,可能不少玩家都会感叹“怎么会有人跳出这么多分!”然而事实证明,还有人能跳出更高的分数。
王哲晒出的高分榜单
对于程序员来说,解决程序问题当然还得靠程序,王哲在“跳一跳”中轻松上高分的秘籍其实就是开外挂。在开发外挂的时候,王哲有两套思路。受到bilibilli上一个视频里的硬件方案启发,因为ev3有颜色识别传感器,王哲首先想到用乐高 ev3 机器人来做。但在具体操作的时候发现控制硬件很麻烦,编码效率低,被迫放弃。
于是换第二个思路,纯软件解法。用adb shell screencap截图后,对图像进行分析,然后用adb shell input指令来模拟触摸时间,用卷积来识别图像。而这个方法在知乎和github上早就已经有了,输入关键词“跳一跳”就能出来几百个结果。这些结果几乎都不用挨个试,王哲找了一个star数量最高的,把PIL库的几个函数调用,再安装一些前置工作就可以使用了。使用外挂后,王哲的“跳一跳”成绩便迅速突破4000分。
做好的外挂程序
“跳一跳”的游戏外挂制作比较简单,稍微懂编程的人都可以制作。外挂简单,反外挂也不难。针对这样的外挂,把背景图片弄复杂一些,让边缘检测、卷积都派不上用场也就好了。由于“跳一跳”上线时间较短,反外挂程序暂时还没有,不过腾讯方面在元旦期间也在加班做反外挂逻辑,随着后续版本的更新,这样的外挂将无法使用。■
领取专属 10元无门槛券
私享最新 技术干货