4399小游戏—宠物连连看经典版2—游戏辅助脚本VanHope

期末的时候看到一篇博客,写的宠物连连看的辅助脚本,感觉很有意思,就自己跟着博客自己实现了一遍,开发过程中遇到了一些问题,也体会到了解决问题的乐趣,遂在此记录一下。

这篇博客给出了完整版的代码,大体上我是根据他的思路实现的,只有部分细节按照我自己的想法做了修改。

具体流程如下:

窗口句柄:简单理解就是窗口的id,可以根据这个id识别已经打开的窗口

在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口最小化等等。

--《百度百科》

可以使用winspy,spy++等工具获取某个窗口的句柄。

使用360浏览器打开宠物连连看小游戏后,我用winspy获取到的句柄是"宠物连连看经典版2小游戏,在线玩,4399小游戏-360安全浏览器10.0"

获取到窗口的句柄之后,就可以使用python的库操纵窗口了,使用的库是win32gui

#获取窗口的句柄self.hwnd=win32gui.FindWindow(0,wdname)ifself.hwnd==0: print('nosuchhwnd') exit(1)#将该窗口显示在最前面win32gui.SetForegroundWindow(self.hwnd)执行之后,连连看的窗口就显示到最前面了,下一步就可以截图了

主要使用到的库是PIL的ImageGrab,PIL现在官网上不去,pillow好像和PIL功能是差不多的,文档可以参考pillow的。

这一步的重点是要计算出每个图标的左上角、右下角的坐标,准确将其从截图中分割出来。

'''获取屏幕截图,并将图标分割'''defscreen_grab(self):#获取整个屏幕截图image_grab=ImageGrab.grab()#获取截图中间所有动物图标的截图box=(399,305,1247,873)animals_iamge=image_grab.crop(box)#将每个动物图像分割,得到图像矩阵images_list=[]offset=71#将截图用windows自带的画图打开,就可以查看某个点的位置, #计算出每个图标的大小大约是71px,不是特别准确,但是基本可以分割出每个图标了x0=0y0=0foriinrange(8):images_row=[]forjinrange(12):#小图标左上角的坐标x1=x0+j*offsety1=y0+i*offset#小图标右下角的坐标x2=x1+offsety2=y1+offset#5px的偏移是为了去掉小图标周围,只保留中间,这样区分不同的图片更容易images_row.append(animals_iamge.crop((x1+5,y1+5,x2-5,y2-5)))images_list.append(images_row)returnimages_list3、将图标矩阵转换成数字矩阵这一步是比较复杂的,主要的目标是将每个图标转换成一个数字,要求相同的图标数字相同。

这里分为两步:

首先将每个图标转成一个灰度图标,然后将这个灰度图标转换成01字符串。

然后比较两个字符串各个位置0、1的区别,记录不同的个数,然后设定一个阈值,不同的个数如果低于这个阈值(即两个图标相差不多),可以认为它们是同一种图标,否者不是。

比较麻烦的是阈值的确定,只能将两个图片的灰度值慢慢比较,找到一个threshold,高于这个threshold能区分为两个不同的图片;低于这threshold保证两个图标相同。

我用到的一个技巧就是,在创建图标矩阵的时候(上一步),每个图标截取的时候往中间多收缩了5px,这样就可以去掉截取的图标周围的一些"杂质",更容易确定阈值。

[[00000000000000][01223245677180][0949108311231150][06126312941281130][0312101112385966100][07471148125127520][01014211766115530][011958421091011990][010127112107641880][00000000000000]]4、判断两个点是否可以点击消除根据游戏规则,对一个点(x1,y1)得到它可以直接到达的点的集合list1,所谓直接到达,指的是从(x1,y1)出发上下左右连续为0的点;对于(x2,y2)得到list2,然后判断list1中每个点和list2中每个点有没有可以直接到达(即两个点在同一行或同一列,且中间都是0),如果存在这样地点,就说明(x1,y1)、(x2,y2)可以到达。

THE END
1.宠物连连看经典版2小游戏大全,宠物连连看经典版2相关游戏7k7k小游戏宠物连连看经典版2搜索结果为您提供宠物连连看经典版2的小游戏大全,宠物连连看经典版2小游戏推荐,宠物连连看经典版2最新游戏,最多人玩的宠物连连看经典版2游戏,宠物连连看经典版2游戏专题,宠物连连看经典版2游戏全集,宠物连连看经典版2相关游戏https://so.7k7k.com/game/%E5%AE%A0%E7%89%A9%E8%BF%9E%E8%BF%9E%E7%9C%8B%E7%BB%8F%E5%85%B8%E7%89%882/
2.宠物连连看经典版2小游戏,在线玩,4399小游戏宠物连连看经典版2小游戏在线试玩,小游戏下载及攻略,更多好玩小游戏尽在www.4399.comhttps://www.4399.com/flash/80972_4.htm
3.连连看小游戏大全连连看游戏游戏连连看免费下载连连看小游戏大全结合了当下最轻松休闲的趣味玩法,是时下最好玩最放松的益智手游,华丽的游戏界面,流畅的操作快感,简单的玩法,发泄一天的疲劳感,玩这款游戏能够有效的进行解压,有兴趣的不妨前来当易网下载!http://www.downyi.com/key/lianliankan
4.宠物连连看手机版免费下载宠物连连看经典版下载安装...宠物连连看是非常好玩的休闲消磨时间的游戏,因其可爱的宠物主题和刺激的连连消除玩法而备受玩家喜爱,简单易懂的规则和丰富多样的关卡设计,为玩家带来了无尽的乐趣和挑战。随着游戏的爆火,厂商也是做出了各个版本,于是小编就给大家带来了宠物连连看版本大全,里面有宠物连连看经典版、宠物连连看3d版、宠物连连看单机版等等,对...https://www.ddooo.com/zt/cwllk.htm
5.宠物连连看经典版2,宠物连连看经典版2小游戏,360游娱司宠物连连看经典版2 类型:益智 更新时间:2022-07-08 简介:【宠物连连看经典版2勋章版】是继宠物连连看经典版之后的改进版,更合理的关卡,更刺激的体验,超级酷炫的42种精致的宠物小图,堪称连连看中的经典。玩宠物连连看经典版2,挑战敏捷类游戏极限! 复制 https://xiaoyouxi.360.cn/detail?id=bcIeZYM5SyWmPk
6.宠物连连看经典版2小游戏1981 日韩 喜剧 《【宠物连连看经典版2】小游戏_游戏规则玩法,高分攻略...上海夫妻的360㎡郊野之家:一天工作4小时,过高效自在的生...福运之神 土地公土地婆佛像 土地爷土地奶奶佛像》剧情简介:9、努埃尔——打网球的名气不大也没钱被抛弃孔南尚未感觉到异常孔荔却无法动了在孔南的拖拽中重重倒在地上【宠物连...http://www.catholicsh.org/idk5c3k0o8aq6wy/20240731/isocsfsm.aspx
7.宠物连连看经典版iPhone版免费下载宠物连连看经典版 版本:6.68大小:21.9MB语言:简体中文分类:小游戏 本应用:官方版安全无广告需网络 手机扫码下载 7.9 应用简介 【基本介绍】 电脑上最正版的连连看游戏免费下载,赶紧来吧! 清新优雅的画面 - 全新的玩法 - 最流畅平滑的操作体验! - 32种移动方式。https://www.duote.com/ios/47932.html
8.宠物连连看经典版手机版下载宠物连连看单机版下载中文版宠物连连看做为一款连连看的休闲游戏深受玩家的喜爱,因为游戏的画面非常的可爱,玩法也非常的休闲,适合各类人群娱乐,而且还可以锻炼玩家的眼力,游戏可以支持电脑、手机两个平台,对于想玩的朋友可以直接体验非常方便,所以今天小编就带来了宠物连连看的各种各样的版本,喜欢的话选择想要的版本下载即可哦。 http://www.xfdown.com/k/petlinlink/
9.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
1.手机连连看游戏下载免费版连连看小游戏大全连连看经典版连连看顾名思义就是找出相关联的两样东西,操作简单,老少咸宜,“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程,IT猫扑收录了几款经典版的手机连连看游戏,快来下载试玩吧!https://www.itmop.com/key/lianliankan/
2.4399小游戏精灵排行榜,经典4399小游戏推荐4399小游戏精灵排行榜,经典4399小游戏推荐 一、4399智力游戏排行榜是怎么样的 4399智力游戏排行榜:《宠物连连看》、《森林冰火人中文版》、《高楼爆破3勋章版》。 1、《宠物连连看》 《宠物连连看》考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,...http://www.777au.com/shouyou/a7526412.html
3.用Python做一个游戏辅助脚本,完整编程思路分享获取窗口句柄,这里就是浏览器标题栏的标题了(右键-查看源代码-title,加上软件名)比如:“宠物连连看经典2,宠物连连看经典版2小游戏,4399小游戏 [www.4399.com]- GoogleChrome“。获取窗口句柄就可以开始了。 总体开发思路:截取游戏主图 —> 分割成小图 —> 对比每个小图,对比图片相识度,编号存入矩阵 —> 对...https://blog.csdn.net/ITF_001/article/details/122328788
4.安卓连连看单机版下载手机连连看小游戏大全手机连连看游戏一直都是大家必备的休闲精品,这类游戏题材多样,玩不腻,最适合无聊的时候打发时间了,这个小编深有体会,此次腾牛安卓网游戏速递特别为大家免费提供各类好玩的安卓手机连连看游戏免费下载,保证不会让您失望.https://www.qqtn.com/az/azllkyx/
5.宠物连连看小游戏大全宠物连连看小游戏全集宠物连连看小游戏大全:17yy经典小游戏为您提供最新最好玩的【宠物连连看】小游戏免费在线玩,最多的宠物连连看无敌版小游戏、下载,以及详尽的小游戏排行榜,更多更好玩的小游戏尽在17yy经典小游戏大全!https://www.17yy.com/tags/chongwulianliankan_3133/
6.十大经典好玩的连连看游戏最火的连连看小游戏推荐→MAIGOO生活榜开心水果连连看2超过1000个关卡 综合指数:91.8 02 宠物连连消超过1500个关卡 综合指数:90.2 03 宠物连连看经典版微信小游戏 综合指数:88.7 04 奇妙连线达人宝宝巴士旗下幼儿益智连连看 综合指数:87.1 05 奇妙思维闯关宝宝巴士旗下幼儿益智连连看 综合指数:85.5 ...https://www.maigoo.com/top/434022.html
7.宠物连连看可爱版小游戏有没有什么好玩的联网小游戏啊老铁们,大家好,相信还有很多朋友对于宠物连连看可爱版小游戏和有没有什么好玩的联网小游戏啊的相关问题不太懂,没关系,今天就由我来为大家分享分享宠物连连看可爱版小游戏以及有没有什么好玩的联网小游戏啊的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧! https://si84.com/news/xydt/14047.html
8.宠物连连看31版童年回忆,重燃连连看热情!四、游戏体验 宠物连连看3 1版在游戏体验方面也做出了很大的改进。游戏画面更加精美,音效更加逼真,让玩家能够更好地沉浸在游戏中。同时,游戏还支持多种语言,让不同国家的玩家都能够享受到游戏的乐趣。 宠物连连看3 1版是一款非常优秀的连连看小游戏。它不仅继承了经典的连连看玩法,还新增了多种特色玩法和道具。同时...https://www.6pp.com/articles01/38756.html
9.经典宠物连连看下载经典宠物连连看2.0下载游戏概述 配置要求 安装说明 相关下载 新闻攻略 资源地址 游戏介绍 经典宠物连连看游戏,程序小,运行快。 【规则简介】需要选择一对相同的图案连线,但此连线是在避开其他图案后,呈现的路径以不超过两次转弯,如符合规定则消除此对图案而得分。 资源地址 版本说明我要报错 ...https://down.ali213.net/mini/game_7575.html
10.连连看,连连看游戏,连连看小游戏,连连看小游戏大全在线玩连连看,连连看游戏,连连看小游戏,连连看网页版,连连看在线玩,在线连连看,连连看小游戏大全,更多好玩的小游戏尽在3699小游戏。https://www.3699.cn/tag/32/