用最好的语言 PHP 玩微信跳一跳 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
metowolf
V2EX    PHP

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

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

    别打我,我不是引战的 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  
      &bsp;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     Solana     2841 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 00:21 PVG 08:21 LAX 17:21 JFK 20:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86