首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

用最好的语言 PHP 玩微信跳一跳

  •  
  •   metowolf · 2017-12-31 15:44:03 +08:00 · 8169 次点击
    这是一个创建于 383 天前的主题,其中的信息可能已经有所发展或是发生改变。

    别打我,我不是引战的 XD

    github

    https://github.com/metowolf/JumpJumpHelper

    效果图

    screen.png

    食用方式

    1. 手机进入设置 > 开发者选项,打开 USB 调试、模拟触控
    2. 手机连接电脑,安装 adb 相关驱动,检查 adb devices 命令是否能显示设备 ID
    3. 微信进入跳一跳游戏,点击开始
    4. 电脑运行 php run.php

    如果发现跳跃过远 /近,可以适当调节 config.php 中的参数

    原理

    • 截取手机屏幕,并传到电脑上。
    • 通过分析图片,取得当前任务及其目标位置
    • 计算按压时间,通过 adb 命令模拟点按操作

    其实大部分原理和前人 python、nodejs 版的是差不多的,这里通过 php-gd 库来实现像素的提取。

    棋子的识别,通过多次取棋子底部最宽部分的颜色均值来实现,正确率挺高的。
    棋盘的识别,排除背景色后,按连续像素长度来匹配,找到第一个峰值,取中心位置。在大部分情况下都能正确识别,但遇到棋子和下一个棋盘重叠(挨得很近)的情况就会出错。打算考虑其它方法。

    (各种语言的版本应该全了

    求大佬们指教

    第 1 条附言  ·  2017-12-31 23:02:38 +08:00
    更新了目标点识别算法,采用二次函数进行拟合,调调参数,现在大概可以破千了
    24 回复  |  直到 2018-01-12 10:24:07 +08:00
        1
    baodaren8   2017-12-31 15:50:05 +08:00
    0.0 一个小游戏。何必这样呢。
        2
    kn007   2017-12-31 15:51:18 +08:00
    可以的,兄弟
        3
    askfilm   2017-12-31 15:51:24 +08:00
    大家都很 6
        4
    locksheep   2017-12-31 15:52:51 +08:00 via Android
    因为乐趣
        5
    Mrxx   2017-12-31 16:17:28 +08:00
    这才是 v2ex
        6
    JohnChiu   2017-12-31 16:26:51 +08:00
    很棒,很有意思
        7
    to2false   2017-12-31 16:48:40 +08:00 via iPhone
    捧场
        8
    lyzy   2017-12-31 16:49:16 +08:00
    这才是 v2ex
        9
    pyufftj   2017-12-31 16:50:04 +08:00
    666
    微信:我有一句 MMP
        10
    paragon   2017-12-31 17:00:00 +08:00
    adb 恐成最大赢家
        11
    RobertYang   2017-12-31 17:10:13 +08:00 via Android
    😂😂看看能不能超过 Python 那个的分数
        12
    Patrick95   2017-12-31 17:24:44 +08:00   ♥ 1
    东西是好东西,只是我手动玩这个游戏的热情已经完全被浇灭了。
    我手动打出 381 分的成绩,却被 2000 多分的朋友超了。
        13
    lsido   2017-12-31 18:11:15 +08:00 via iPhone
    这才是 v2er
        14
    Takahashi   2017-12-31 18:47:47 +08:00
    很棒,原来 PHP 还能这么玩
        15
    xiaojie668329   2017-12-31 19:57:47 +08:00 via iPhone
    安卓方便,ios 搞起来太麻烦了。
        16
    nicevar   2017-12-31 20:36:38 +08:00
    额。。。用最好的语言兼容性没弄好,getStart 函数直接 gg
        17
    cjyang1128   2017-12-31 22:17:00 +08:00
    很棒很棒,仿佛回到了当年的百家争鸣时代,哈哈哈
        18
    jasonpeng0322   2017-12-31 22:36:40 +08:00
    用了,Samsung S7 Edge 并不能跳几下就 GG 了。
        19
    ieliwb   2017-12-31 22:41:37 +08:00
    PHP 还可以这样玩,NB
        20
    lepig   2017-12-31 23:17:59 +08:00
    ios 可以吗
        21
    Mac   2018-01-01 01:03:14 +08:00 via Android
    小米 Note3 完美,哈哈哈
        22
    townmu   2018-01-01 01:22:09 +08:00 via Android
    @Patrick95 我超不过 300 多分的一个人,索性刷一下到 700 多分,我不开心,你们谁也别想好
        23
    jookr   2018-01-02 11:55:40 +08:00
    请问直接把截图放到根目录运行 run.php 报错可以帮解决一下吗

    #00000:
    Notice: Undefined variable: x in M:\Web\localhost\test-2\jump\run.php on line 42

    Notice: Undefined variable: y in M:\Web\localhost\test-2\jump\run.php on line 42

    Notice: Undefined variable: mid in M:\Web\localhost\test-2\jump\run.php on line 81

    Notice: Undefined variable: mid in M:\Web\localhost\test-2\jump\run.php on line 81
        24
    weilongs   2018-01-12 10:24:07 +08:00
    试了一下,我最多蹦 30 多分就挂了。我蹦一下,他蹦一下感觉好有爱。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2349 人在线   最高记录 4236   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 11:46 · PVG 19:46 · LAX 03:46 · JFK 06:46
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1