-
环境: 基于 PHP 的 GD 库.
-
配置: 详见config.php.
-
注意1: 为了避免不必要的影响, 当前项目配置是第三方的连连看(使用三级狗的TheThreeDog/Auto-Lianliankan中提供的连连看), 游戏下载地址. 不提供QQ连连看配置, 如需要请自行配置.
-
注意2: PHP 是没有自带的扩展支持截屏和模拟鼠标单击动作的, 因此需要外部系统命令支持, 调用修改位置syscall.php, 自行替换成自己系统的外部命令. 其中, 默认调用的是我用go写的一个截图和模拟鼠标单击的程序(源码control.go, 只编译了Linux版本), 使用了go-vgo/robotgo(支持全平台), 如要使用这个请自行根据go-vgo/robotgo的文档安装环境再编译.(其实可以直接用go撸一个, 逃
-
本项目只在Linux(Xorg)环境下测试通过装在Win10虚拟机中的连连看. (逃...
-
截取全屏(调用外部系统命令).
-
假设背景颜色为BG.
-
扫描每行像素颜色(你的桌面不能连续游戏区域宽度与背景颜色BG一样, 不能混淆), 满足连续BG颜色的游戏区域长度的行首标记为起始坐标, 适当调整到第一个方块的左上角坐标, 之后截取整个游戏区域(不含方块的侧边).
-
按方块大小截取并按 (x)(y)坐标 => 图片数据的键值方式保存所有方块列表. 其中通过判断方块中间横线(横坐标)像素颜色是不是连续满足一定长度与背景颜色BG一致来过滤掉空的方块, 将这些空方块的图片数据设为空.
-
遍历方块列表判断是否连通, 是的话模拟鼠标点击, 将相连的2个坐标(x)(y)对应的图片数据设为空.
-
重复上一步, 直至全部完成.
在知乎上看到ID:三级狗的你看过/写过哪些有意思的代码?的回答, 就想能不能用php也撸一个, 因此就有了这个项目, 我的回答.