wechat_jump
经过对游戏的观察,自己想到了几种理论上可行的方案,慢慢完善在这里吧
经实践,发现理论都是完美的,现实都是残酷的,,,tencent也在不断地升级反作弊吧。
运行环境:
软件:python3.6、OpenCV2
驱动:adb,用于安卓手机调试,参考https://github.com/wangshub/wechat_jump_game
方案1:
观察:
- 游戏开始的第一跳都是固定的步长
- 如果上次跳到中心,下一个目标会显示白点
思路:
- 通过pixel值来识别棋子,作为初始点
- 第一步手动设置distance来跳中目标中心,后面追踪白点作为目标点
- 计算距离,换算时间
理论上,这是最简单,同时分数也上涨最快的方案,当然分数上涨快了也就容易被ban了
方案2:
观察:
- 下一目标块阴影的位置相对稳定
思路:
- 通过pixel值来识别棋子,作为初始点
- 直接计算阴影的起始点,然后将其向右偏移一定距离作为目标点
- 计算距离,换算时间
理论上,这是最简单,同时最稳定的方案
方案3:
观察:
- 当前块和目标块的位置关系(中心点横坐标和为一定值)
思路:
- 通过pixel值来识别棋子,作为初始点
- 若棋子命中了中心,则(定值 - 棋子当前值)为目标点
- 计算距离,换算时间
理论上,每次跳跃只需识别一次像素值,效率最高的方案,但实际上相同参数的跳跃结果也有一定的随机性