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.宠物连连看,宠物连连看小游戏,4399小游戏www.4399.com鼠标点击两个相同图标,如果图标间的连线转折不超过两次并且不经过其他图标,即可消除哦。 如何开始 游戏加载完毕点击画面中间的图像即进入游戏 游戏目标 在有限的时间里,消除所有的图标,通过9个关卡获得最终的胜利。 请记住本站网址4399.com,点击收藏4399,方便下次再玩。 《宠物连连看》小游戏由4399用户提供。https://www.4399.com/flash/776.htm
2.连连看网页游戏连连看连连看游戏连连看游戏大全7k7k连连看游戏大全为您提供果蔬连连看、宠物连连看、汽车标志连连看等经典连连看游戏,你可以在7k7k小游戏上体验连连看在线玩,希望你在7k7k连连看的世界里玩得开心!https://www.7k7k.com/tag/1/
3.宠物连连看游戏下载免费宠物连连看经典版宠物连连看手机版下载宠物连连看游戏大全收集了一些玩家们玩得比较火的连连看游戏,其中包括了宠物连连看2.5版、宠物连连看3.1以及宠物连连看经典版,游戏中有着许多可爱的小动物,玩家需要找到相同的两只小动物连接它们来消除它们,直到把屏幕上面的小动物全部消除才算过关,趣味性十足,感兴趣的小伙伴快来当易网下载体验吧。 http://www.downyi.com/key/chongwulianliankan/
4....宠物连连看经典版下载安装宠物连连看游戏下载大...宠物连连消手机版等级:大小:44.4M更新时间:2024-06-08直接下载简要:宠物连连消手机版是深圳市猎游科技有限公司打造的一款Q萌可爱益智休闲的消除类连连看小游戏,游戏中40多种Q萌宠物带玩家进入一个可爱萌宠乐园,和玩家一起high翻天!与许多传统的三消游戏不同,涵盖了五种不同的游戏玩法,每一种玩法的操作十分简单,即...https://www.ddooo.com/zt/cwllk.htm
5.宠物连连看宠物连连看小游戏973宠物连连看提供宠物连连看小游戏,宠物连连看在线玩,宠物连连看攻略,宠物连连看无敌版,宠物连连看双人版,宠物连连看小游戏大全等。http://lianliankan.973.com/p68742
6.宠物连连看2012最新版,宠物连连看2012最新版小游戏,360游娱司简介:宠物连连看小游戏。可爱的宠物又来了。经典的传统玩法,宠物连连看2012最新版出来喽,游戏里有两种玩法可供你选择,喜欢连连看的同学们可千万不要错过呀,一起进来玩玩看吧,在指定的时间里,消掉所有的图案即可进入下一关。 复制 u7u9小游戏 操作指南 https://xiaoyouxi.360.cn/detail?id=asYXMIQzSlSmQk
7.宠物连连看可爱版小游戏宠物连连看可爱版在线玩宠物连连看卡哇伊版是根据2002年最早在PC机上流行的宠物连连看kawai单机版改编的FLASH版本。宠物小精灵经典的图案曾经风靡一时!https://www.18183.com/down/897091.html?soucre=bdald
8.宠物连连看3.1一款以宠物为主题的连连看游戏,好玩又有爱。考验各位的眼力的时候到了。在规定的时间内,让相同的宠物朋友们相会,它们就会消失哦,所有的朋友们都找到伴后就可以获得胜利了。 操作方法:鼠标点击连接相同图案。 地址:http://4388.4355.cn/23146.htm 开始游戏http://4388.4355.cn/23146.htm
9.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
10.宠物连连看3.1无敌版,宠物连连看3.1无敌版小游戏,2...2144带给您好玩的宠物连连看3.1无敌版 小游戏,宠物连连看3.1无敌版 在线玩,宠物连连看3.1无敌版 游戏攻略,宠物连连看3.1无敌版 无敌版,宠物连连看3.1无敌版 双人版,更多好玩的宠物连连看3.1无敌版 小游戏尽在2144小游戏https://www.2144.cn/html/85/49140/
11.宠物连连看2.6益智小游戏宠物连连看2.6 3.40分 益智347.39 KB 介绍:宠物连连看最新版本,修正了老版本的一些错误。更精彩哦!更多>> 操作说明: [鼠标左键]点相同相邻的两个图片可消去 如何开始: 点击开始按钮标签: 游戏推荐 人气最新发布换一批 末日求生 圣诞海鲜对对碰 后门2 横向连连看 迷你泡泡堂2 可爱小孩房间逃脱 迪士尼连连看 吃掉...http://wan.rising.cn/xyx/game-60466-5.aspx
12.宠物连连看2.5版逗游小游戏为你提供最新的宠物连连看2.5版小游戏,免费下载宠物连连看2.5版小游戏,并同时提供最新宠物连连看2.5版小游戏操作方法,助你顺利闯关。在线免费玩宠物连连看2.5版小游戏,马上来逗游小游戏吧,玩游戏其实可以很轻松!https://www.doyo.cn/flash/game/529979
1.宠物连连看小游戏大全宠物连连看小游戏全集宠物连连看小游戏大全:17yy经典小游戏为您提供最新最好玩的【宠物连连看】小游戏免费在线玩,最多的宠物连连看无敌版小游戏、下载,以及详尽的小游戏排行榜,更多更好玩的小游戏尽在17yy经典小游戏大全!https://www.17yy.com/tags/chongwulianliankan_3133/
2.宠物连连看小游戏大全世界上最难地小游戏 合金弹头4 地下城与勇士速升版 阿Sue理发店 亚当夏娃吃禁果 僵尸危机3 武林外传之同福客栈 肥猫天使 红孩儿连连看 街头霸王 阿Sue作棒冰 电眼美女 疯狂坦克II 永远地超级玛丽 明天我要嫁给你 地狱警车 魔女地条件 奥特曼战士换装 水陆突击队 ...https://www.7k7k7.com.cn/tag/chongwulianliankan/
3.宠物连连看3.1小游戏大全宠物连连看3.1小游戏全集...【宠物连连看3.1小游戏大全】宠物连连看3.1小游戏全集...,据了解,溶聚丁苯橡胶是中国科学院青岛能源所催化聚合与工程研究中心主任王庆刚的研究内容之一。它既可以提高轮胎的抗湿滑性和安全性,又能降低滚动阻力和油耗。但遗憾的是,我国高性能溶聚丁苯橡胶几乎完全依赖进口http://www.hffy.com/osx20240701/yeucbglukmocid.aspx
4.宠物连连看2.6小游戏宠物连连看2.6在线玩游戏大小:182K( 加载时间可能较长,请耐心等待 ) 关灯 全屏最佳放大缩小 0% 重玩下载 得分:4.0 我要打分: 游戏说明 分享到:QQ空间腾讯微博开心网人人网新浪微博豆瓣 游戏介绍: 宠物连连看最新版本修正以前版本的作弊,非常好玩啊,你赶紧的去玩一下感受一下啊... ...http://www.43999yx.com/yizhi/13267_play.htm
5.可爱宠物连连看(可爱宠物连连看,放松身心的小游戏)当我们的工作压力和生活琐事让我们疲惫不堪时,一款简单有趣的小游戏就可以帮我们舒缓身心,让我们重新充满精力。作为一款轻松愉悦的益智游戏,可爱宠物连连看就是这样一款游戏。它既兼具休闲和创造力,还能够帮助我们提升观察能力,增强手眼协调性,提高反应能力。不仅如此,它还拥有一群可爱的小宠物角色,在游戏中陪伴我们度过...https://youxihudie.com/gonglue/42218.html
6.宠物连连看3.1无敌版H5,宠物连连看3.1无敌版H5在线玩3699小游戏益智游戏 宠物连连看3.1无敌版H5 宠物连连看3.1无敌版H5考验的是各位的眼力,这一版拥有无限提示次数,你需要在有限时间内找出颜色相同的图案并连接,连接后相同的图案就会消失,连接的规则是连接产生的折线至多拐折两次并且折线不能从图案上穿过,而你的任务就是在有限时间内消灭所有的图案,快来试试吧! http://www.3699.co/p/11368.htm