/wechat_jump

微信小游戏之跳一跳

Primary LanguagePython

wechat_jump

经过对游戏的观察,自己想到了几种理论上可行的方案,慢慢完善在这里吧

经实践,发现理论都是完美的,现实都是残酷的,,,tencent也在不断地升级反作弊吧。


运行环境

软件:python3.6、OpenCV2

驱动:adb,用于安卓手机调试,参考https://github.com/wangshub/wechat_jump_game

方案1

观察:

  • 游戏开始的第一跳都是固定的步长
  • 如果上次跳到中心,下一个目标会显示白点

思路:

  1. 通过pixel值来识别棋子,作为初始点
  2. 第一步手动设置distance来跳中目标中心,后面追踪白点作为目标点
  3. 计算距离,换算时间

理论上,这是最简单,同时分数也上涨最快的方案,当然分数上涨快了也就容易被ban了

方案2

观察:

  • 下一目标块阴影的位置相对稳定

思路:

  1. 通过pixel值来识别棋子,作为初始点
  2. 直接计算阴影的起始点,然后将其向右偏移一定距离作为目标点
  3. 计算距离,换算时间

理论上,这是最简单,同时最稳定的方案

方案3

观察:

  • 当前块和目标块的位置关系(中心点横坐标和为一定值)

思路:

  1. 通过pixel值来识别棋子,作为初始点
  2. 若棋子命中了中心,则(定值 - 棋子当前值)为目标点
  3. 计算距离,换算时间

理论上,每次跳跃只需识别一次像素值,效率最高的方案,但实际上相同参数的跳跃结果也有一定的随机性