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.连线之王连线之王html5游戏4399h5游戏4399云游戏 宠物连连看 小游戏大全 动漫网 斗罗大陆H5 斗地主 祖玛 三国群英传 塔防游戏 超级玛丽 密室逃脱 客户端游戏 死神vs火影 美食大战老鼠 火柴人 好游快爆 好玩的网页游戏 三国杀 和平精英 3D游戏 地铁跑酷 扫雷 使命召唤手游下载 无敌版小游戏 单人游戏 3387游戏 赛车小游戏 西普大陆手游游戏玩法 评论 作...https://www.4399.com/flash/245490.htm
2....连连看奇遇世界安卓版下载连连看奇遇世界游戏推荐《连连看奇遇世界》是一款十分有趣好玩的休闲娱乐游戏,连连看的新版本,点击三个相同的图案可消除掉,会有很多很多的小动物哦!要注意辨认!游戏具有一定的挑战性,难度逐渐提升!对这种类型的游戏感兴趣的玩家,可以尝试体验一下哦! 展开 详细信息 版本:1.4.0 更新:2024-11-20 系统:Android 5.0以上 语言:中文 类型:...https://a.4399.cn/game-id-327799.html
3.宠物连连看2.5版小游戏宠物连连看2.5版在线玩《宠物连连看2.5版》是2.0版的升级版本。加入了空格键暂停游戏的功能,画面有所调整,修正了到6关时程序不能继续的bug,游戏中的难度有所降低。 操作方法:鼠标操作,将图案相同的两张图片用三跟以内的直线连在一起消除。 类型:宠物宠物连连看益智经典连连看|大小:243K ...http://www.43999yx.com/yizhi/9454_play.htm
4.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
5.4399连连看v1.0下载益智游戏4399连连看包括以下连连看游戏宠物连连看3.0,宠物连连看2.6,QQ连连看,厨房连连看等众多连连看游戏。 2.4399连连看是一款下载到本地就可以直接游戏的软件: 4399连连看不需要连接到网络就可以在本地直接游戏的小游戏软件。 3.4399连连看是一款免费、安全、绿色的小游戏软件: ...https://www.crsky.com/soft/16187.html
6.连连看3.1连连看3.1原版连连看小游戏大全连连看小游戏大全提供连连看3.1,连连看3.1原版,宠物连连看3.1,宠物连连看3.1无敌版,宠物连连看2.5,宠物连连看2.6,宠物连连看3.0,宠物连连看单机版,连连看单机版下载,宠物连连看特别版等宠物连连看在线玩下载。http://lianliankan.973.com/
7.经典游戏经典单机游戏经典单机小游戏经典游戏大全宠物连连看2.5 黄金矿工双人版 黄金矿工单人版 经典游戏 有多少游戏能够让你难以忘怀,能够在一瞬间就轻易的获得轻松愉悦的心情。7K7K经典小游戏专题,汇聚了大量最有游戏性的小游戏让你领略什么叫简单快乐才是游戏的真谛。 经典游戏相关专题 植物大战僵尸 黄金矿工 ...https://www.7k7k.com/tag/65/
8.推荐一下4399的宠物连连看3.1无敌版,我的...来自几回杂18-04-3 09:46 来自微博轻享版 推荐一下4399的宠物连连看3.1无敌版,我的解压神器。 ?收藏 转发 评论 ?3 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候...ü 简介: 不笑也行 更多a 微关系 她的关注(275) 忘词大王林小喜 疯癫的唐僧 Jarow- ...https://weibo.com/3664219850/GalpXsn8t
9.宠物连连看3.1宠物连连看3.1,宠物连连看的最新版本。在功能上有了不少的升级和改变,难易程度上也做了更合适的修改。使你玩起来的时候不用那么伤脑筋了!玩友们来吧,体验新版连连看! 游戏目标 在有限的时间里,用我们智慧消除相连卡片,通过9关卡获得最终的胜利 如何开始 ...https://www.doyo.cn/flash/game/526999
1.4399小游戏C站4399小游戏大全包含连连看 ,连连看小游戏大全,双人小游戏大全,H5在线小游戏,4399洛克王国,4399赛尔号,4399奥拉星,4399奥比岛,4399弹弹堂,4399单人小游戏,奥比岛小游戏,造梦西游online,造梦无双等最新小游戏。 数据统计 综合信息 4399小游戏站综合查询 点击查询:【5118数据】【爱站数据】【Chinaz数据】 4399小游戏的最新...https://clicli.com.cn/sites/9999.html
2.全面解析宠物连连看可爱版2的玩法与攻略分享在如今的休闲游戏市场中,宠物连连看可爱版2凭借其精美的画面、丰富的玩法和可爱的宠物形象,吸引了大批玩家的喜爱。作为一款经典的连连看类游戏,它不仅能够带给玩家无尽的乐趣,还能锻炼玩家的观察力和反应能力。本文将全面解析宠物连连看可爱版2的玩法与攻略,帮助玩家更好地享受游戏的乐趣。 http://m.sqdtv.com/guanwang/42766.shtml
3.宠物连连看正版宠物连连看正版 导读宠物连连看正版是一款经典的连连看游戏,在游戏中玩家需要通过连接两个相同图案的方块来消除它们。这款游戏具有多种模式和关卡,适合不同年... 宠物连连看正版是一款经典的连连看游戏,在游戏中玩家需要通过连接两个相同图案的方块来消除它们。这款游戏具有多种模式和关卡,适合不同年龄段的玩家挑战。https://news.mogufr.com/yxzn/202411/70112.html
4.4399宠物连连看2.5原版本4399宠物连连看2.5原版下载【4399宠物连连看2.5原版】一直是最受欢迎的连连看游戏,玩法经典、休闲趣味、放松解压,游戏关卡丰富多样,大家自由挑战通关,会有不一样的游戏乐趣,想要玩的朋友就来下载王下载【4399宠物连连看2.5原版】。 4399宠物连连看2.5原版内容 游戏的全新玩法,找到最真实的幸福。 https://www.modelgood.com/10518.html
5.宠物连连看2.5,每关分别是什么4399小游戏的凯茄宠物盯者察连连看2.5版共有9关.~ 希望我的回答能解决您的疑问嫌没,您的支持是我们前进的动力~4399有您更精彩。 宠物连连看2.5版的介绍 《宠物连连看2.5版》扒纯为一款益智春销咐类的小游戏,主要考验玩家的眼力。游戏画面斗型具有宠物等可爱元素。 https://si84.com/news/xydt/14043.html
6.4399宠物连连看2.5原版本4399宠物连连看2.5原版下载...4399宠物连连看2.5原版本-4399宠物连连看2.5原版下载...,相比单纯的测雨雷达,天气雷达不仅能测雨,还能时刻关注大气运动情况,精准捕捉强对流天气过程,包括短时强降水、雷暴大风、冰雹和龙卷等强致灾性天气。尤其是0至2小时的强对流临近预报中,天气雷达系统能够对强对流http://down.bypos.net/mdk20240902/ocflwyb.aspx
7.新手入门HTML5游戏源码(蘑菇与熊)HTML5游戏开发是现代网页应用领域的一个重要组成部分,它利用HTML5、CSS3和JavaScript等技术,为用户提供在浏览器上直接运行的游戏体验。本资源"新手入门HTML5游戏源码(蘑菇与熊)"是一个专为初学者设计的学习项目,旨在帮助你逐步了解并掌握HTML5游戏开发的基础知识。 我们要明白HTML5是Web标准的核心部分,提供了许多新的...https://download.csdn.net/download/ai_ti/4400349
8.宠物连连看3.1原版下载宠物连连看3.1原版下载4399宠物连连看3.1原版是一款非常好玩的休闲消除益智游戏,游戏精致的用户界面,4399宠物连连看3.1原版带给你很多最强最棒的挑战,可以为你提供不同的版本模式,你可以通过简单的操作和独特的战斗方式体验各种游戏,还可以为你提供大量的关卡体验。还有很多有趣的挑战! https://www.dadighost.com/android/138391.html
9.宠物公司热点话题热门搜索词24 造梦西游4宠物在哪抓 395 25 宠物连连看卡哇伊版 395 26 宠物连连看跳关版 388 27 宠物医生 387 28 宠物名字 387 29 qq宠物 376 30 宠物图片 350 31 宠物小精灵之庭树 346 32 宠物连连看2.5版 338 33 宠物王国 338 34 宠物貂 334 35 宠物连连看31 315 36 宠物小精灵图鉴 312 37 宠物培训学校 299...https://www.0797cx.cn/page37?article_id=56716