/LianLiankan

实现QQ连连看自动消除

Primary LanguagePython

本项目起因实在知乎看了一篇用python实现第三方平台连连看游戏,于是自己想动手实践。

基于openCV图像识别的QQ连连看自动运行脚本

开发环境:Python 3

win32

利用win32的接口进行屏幕抓取和鼠标模拟点击

文件中有代码解释,本文档说几点注意点和可拓展方向。

屏幕抓取和鼠标模拟利用win32的api,屏幕抓取文件见screen.png
test开头的png文件是整个项目过程中用来不断测试小方块大小和边缘像素宽度的存留文件
testmargin是测试边缘宽度存留文件
以上图片都可忽略

利用opencv确定整个游戏区域,确定每个小方块大小后,进行分割(这里用切片),可以用imwrite来将切割所得的小方块显示 来判断是否切割正确(包括后续的边缘像素宽度)。

我是在ps软件中确定以上内容。

消除部分的代码,我分为十字形 即StraightLineCheck 带一个拐点turnOnceCheck,带两个拐点turnTwiceCheck, 注意,两个拐点中,我单独为他写了一个StraightLineCheckfortwice,因为这时候,一个拐点情况直线数字相加 为方块值本身(我这里说的可能不清楚,看完代码后再回头看就会明白)。

如果报错,建议在新控制台测试出错部分代码,这样你会知道自己的算法是否有误。
time.sleep控制间隔时间,设置为0,消除完所有方块大约1s。

PS:本代码仅供学习,切误用作其他用途,若有侵害第三方利益和有损腾讯游戏业务,和本人无关(若有告知,我会立马撤销代码)。
PS:再次强调,本项目仅供学习交流,勿作他用,望大家共同维护这个氛围。

以上。