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

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

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

    别打我,我不是引战的 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
    baodaren8
        1
    baodaren8  
       2017-12-31 15:50:05 +08:00
    0.0 一个小游戏。何必这样呢。
    kn007
        2
    kn007  
       2017-12-31 15:51:18 +08:00
    可以的,兄弟
    askfilm
        3
    askfilm  
       2017-12-31 15:51:24 +08:00
    大家都很 6
    locksheep
        4
    locksheep  
       2017-12-31 15:52:51 +08:00 via Android
    因为乐趣
    Mrxx
        5
    Mrxx  
       2017-12-31 16:17:28 +08:00
    这才是 v2ex
    JohnChiu
        6
    JohnChiu  
       2017-12-31 16:26:51 +08:00
    很棒,很有意思
    to2false
        7
    to2false  
       2017-12-31 16:48:40 +08:00 via iPhone
    捧场
    lyzy
        8
    lyzy  
       2017-12-31 16:49:16 +08:00
    这才是 v2ex
    pyufftj
        9
    pyufftj  
       2017-12-31 16:50:04 +08:00
    666
    微信:我有一句 MMP
    paragon
        10
    paragon  
       2017-12-31 17:00:00 +08:00
    adb 恐成最大赢家
    RobertYang
        11
    RobertYang  
       2017-12-31 17:10:13 +08:00 via Android
    😂😂看看能不能超过 Python 那个的分数
    Patrick95
        12
    Patrick95  
       2017-12-31 17:24:44 +08:00   ❤️ 1
    东西是好东西,只是我手动玩这个游戏的热情已经完全被浇灭了。
    我手动打出 381 分的成绩,却被 2000 多分的朋友超了。
    lsido
        13
    lsido  
       2017-12-31 18:11:15 +08:00 via iPhone
    这才是 v2er
    Takahashi
        14
    Takahashi  
       2017-12-31 18:47:47 +08:00
    很棒,原来 PHP 还能这么玩
    xiaojie668329
        15
    xiaojie668329  
       2017-12-31 19:57:47 +08:00 via iPhone
    安卓方便,ios 搞起来太麻烦了。
    nicevar
        16
    nicevar  
       2017-12-31 20:36:38 +08:00
    额。。。用最好的语言兼容性没弄好,getStart 函数直接 gg
    cjyang1128
        17
    cjyang1128  
       2017-12-31 22:17:00 +08:00
    很棒很棒,仿佛回到了当年的百家争鸣时代,哈哈哈
    jasonpeng0322
        18
    jasonpeng0322  
       2017-12-31 22:36:40 +08:00
    用了,Samsung S7 Edge 并不能跳几下就 GG 了。
    ieliwb
        19
    ieliwb  
       2017-12-31 22:41:37 +08:00
    PHP 还可以这样玩,NB
    lepig
        20
    lepig  
       2017-12-31 23:17:59 +08:00
    ios 可以吗
    Mac
        21
    Mac  
       2018-01-01 01:03:14 +08:00 via Android
    小米 Note3 完美,哈哈哈
    townmu
        22
    townmu  
       2018-01-01 01:22:09 +08:00 via Android
    @Patrick95 我超不过 300 多分的一个人,索性刷一下到 700 多分,我不开心,你们谁也别想好
    jookr
        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
    weilongs
        24
    weilongs  
       2018-01-12 10:24:07 +08:00
    试了一下,我最多蹦 30 多分就挂了。我蹦一下,他蹦一下感觉好有爱。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.