源码放github了

https://github.com/ZhangFengze/QQLianLianKanCheat

(我的电脑全速跑的时候配合这首BGM正好节奏搭配哈哈哈

http://music.163.com/#/m/song?id=26220036&userid=376367907 )

(更新,控制台输出每一步的矩阵)

(更新,main.py接受可选参数--interval seconds用作每一步中间的sleep时间)

----------------------------------------------------------------

一直搞C++, 最近工作需要才看了看python。

发现好强大。。库又多又好用。

偶然看到有人拿python搞ocr,自动识别验证码。

想到能OCR,自然也能识别图像。完全可以搞个游戏外挂嘛。。

以前C++也想整,可是各种地方都要自己造轮子,要去接触乱七八糟的底层。复杂点的还要找内存地址,过驱动保护。。。。就一直拖着

现在有python了,可以试试弄个简单点的小外挂。写起来又不费事又好玩。

先拿连连看试试手。QQ游戏大厅的连连看。没什么复杂的反外挂功能,挺好的练手对象。。。

试了试,常规的模拟鼠标方式都没有封掉。截图也可以截取成功。

大概思路,整一个简单点的,自动找出来哪两个可以连起来,然后自动消掉它们。

实现方式也简单点,不要去整什么查内存地址什么的。就简简单单,把屏幕截下来,然后分析分析。然后求解。

(后来在github上搜了搜,发现了一个人写的。。直接读内存获得棋盘形式,https://github.com/laoyang103/qqllk-plugin)

实现方式:

pywin32找游戏窗口句柄,获得其坐标和大小。

PIL截取游戏区。然后把图像分成每个格子。

判断哪些格子是一类。

得到一个矩阵

求解这个连连看矩阵该怎么解

执行(鼠标点一点,我用的是pyautogui)

更新矩阵继续求解

前两步是脏活,无难度

第三步,上网一搜,图片相似识别,一堆。。

求解连连看矩阵,只有这个地方自己动动脑子。。

博客里就只写重点了。细节看我后面放的源码就行。

图像相似识别,没怎么接触过。直接参考的别人代码。

参考的这篇文章。浅显易懂。

http://blog.csdn.net/feimengjuan/article/details/51279629

然后就是求解连连看矩阵了。

我们之前做了一堆脏活。终于把图形化的游戏界面抽象成了一个矩阵。

看这个矩阵我们可以知道哪些位置上的格子是同类的。

但是QQ连连看的规则是,连线不能用超过三条直线。

增加了一点点复杂性。

如果愿意的话,当然可以直接找到所有同类的,然后强行全拿鼠标点一点。

不过这里我前面部分都没怎么动脑子。。这里还是想折腾折腾

其实可以抽象成一个寻路问题,但是不是常规的求最短路径,而是只需要获得一个符合要求的路径即可

最常规寻路思路也就是遍历啦,要么BFS,要么DFS,要么dijkstra,要么A*。还有什么别的,我也没仔细研究过

我这里也懒得求连连看问题的特殊解法了。直接弄了个DFS,减枝条件是不要用超过3条直线。

(后来看了看别人的解法,因为最多只有三条直线,所以情况可以枚举出来。可是我感觉这里枚举出来,后面几种复杂的情况挺脏的。而且还要思考思考枚举全了没。。)

DFS实现细节无所谓,我这里采用的是从某一点开始出发,向四周延伸。记录路径,这样就可以算出来用了几条直线。

这样一个一个位置用DFS搜索,搜出来解了,就执行一步。(也就是拿鼠标点一点了)

然后再重复同样的步骤。

对于QQ连连看这个游戏来说,有一些细节

它是有道具的,似乎是消掉某些方块就得到道具。而不是消掉的同时就直接生效。我们这里选择不用就行了(也就是不鸟它)

所以我们是不用每一步执行完以后重新扫描游戏区的。直接一直用第一次扫描出来的矩阵就行了。执行一步更新一次矩阵。

我刚开始以为消掉道具格子会直接改变场上局势,所以每次都重新分析图像。还是挺慢的。当然和在用python有关系。也和我这里代码写得糙有关系。。。

不过要是不用重新分析图像,还是挺快的。

基本上一秒消几对吧。

为了不太变态,记得在每一步中间sleep一会儿。。

还有,实验发现QQ连连看,是有无解的情况的。

脚本中会提示无解,游戏也会提示。

这时候正常游戏需要用一下道具。。我这里没考虑这情况,有需要的自己添加吧。

就是点一下重列道具,(总是第二个道具)

还有个问题就是,QQ连连看消完一对后,会有爆炸特效。而且两个格子的爆炸效果貌似一样。所以如果每次都重新扫描图像。会扫描到爆炸效果的两个格子。

如果需要重新扫描,要注意一下。不过我这里改用了一次扫描,以后都不管图像了。所以无所谓。

还有一个类似的问题是,鼠标会影响图像判断。

这里我的只扫描一次。所以保证扫描的时候鼠标别放棋盘区域就行了

这样就结束了,代码我会放在我的github上(本页最上面)

放上效果图(本页最上面)

python 自动玩 连连看 外挂相关推荐

  1. 使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏

    近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久,于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩游戏的人, 以前玩2048就经常得 ...

  2. python2048游戏的未来展望_不敢想!不敢想!我用Python自动玩转2048游戏

    近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久,于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩游戏的人, 以前玩2048就经常得 ...

  3. python自动玩游戏_超牛!用Python自动玩转2048游戏

    本篇作者:BlueDamage 近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久, 于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩 ...

  4. Python 自动玩谷歌浏览器“恐龙小游戏”

    相信在座的各位小伙伴对Google Chrome浏览器中的一个游戏彩蛋恐龙小游戏(Chrome Dino)不陌生吧.在断开网络连接,我们访问网站的时候,就会出现一个小霸王龙,在我们再按下空格键后,即可 ...

  5. 用 Python 自动玩王者荣耀,有点意思!

    大家好,我是小z 「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha Go 一样,需要掌 ...

  6. 用 Python 自动玩王者荣耀,简直太秀了

    人生苦短,快学Python! 「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha Go ...

  7. 厉害了!用Python自动玩王者荣耀!

    公众号后台回复"图书",了解更多号主新书内容 作者:Jack Cui 来源:Jack Cui 「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型&q ...

  8. 用 Python 自动玩王者荣耀,简直太秀了!

    「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha Go 一样,需要掌握海量数据和机器的 ...

  9. Python自动玩俄罗斯方块小游戏

    开发工具 Python版本:3.6.4 相关模块: pyqt5模块: 以及一些Python自带的模块. 关注转发后私信回复"俄罗斯方块"获取相关文件 环境搭建 安装Python并添 ...

  10. python王者战斗_用 Python 自动玩王者荣耀,简直不要太秀!

    「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha Go 一样,需要掌握海量数据和机器的 ...

最新文章

  1. Binary XML file line #39: 最多只支持3个子View,Most only support three sub vi
  2. 8 个你必须要掌握的 GitHub 实用技巧!
  3. 如何使用Key User Tool扩展SAP S/4HANA Fiori UI
  4. 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】...
  5. 自学成为程序员_成为程序员不需要的10件事
  6. MINIGUI图形界面开发入门,交叉编译,移植
  7. 同一个ip服务器comcat下部署第二个项目怎么设置,用nginx在同一服务器端口下部署多个项目,第二个项目打开后页面空白?...
  8. Ngnix中的fastcgi參数性能优化和解释
  9. 支持蓝牙的模拟器_横竖都能玩的小鸡G6,蓝牙连接尽情享受手游乐趣
  10. 人工智能有没有可能在未来超越人类?
  11. 生命力最强的新闻,放到二十年后依旧是新闻
  12. 机器人心灵感应:允许人类远程操作和训练机器人手
  13. nginx url中带中文不能访问
  14. 区块链51%双花攻击
  15. Solana之旅1:Solana是什么
  16. 区块链发展,能源领域不能盲目跟风!
  17. pyparsing简介
  18. 1.11 学JS的第7天
  19. 怎么保证促销商品不会超卖
  20. 故事工厂在DuerOS技能开发中的应用——百度2019AI开发者大会DuerOS公开课摘要解读之四...

热门文章

  1. 交易日节假日查询API接口规范
  2. mr图像翻转的原因_前置摄像头水平翻转问题
  3. 网络爬虫是什么意思?
  4. 《逆袭进大厂》第十三弹之Redis重点篇
  5. 给div元素设置背景颜色
  6. OpenGL 简化点光源与平行光的对比实验
  7. IntelliJ IDEA 自定义注释作者名字
  8. Spring Cloud Netflix之Euraka Server注册中心
  9. java 网络五子棋游戏_基于JAVA的网络五子棋游戏
  10. 安卓支持AES 256加密解密