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.宠物连连看3小游戏,在线玩,4399小游戏宠物连连看3小游戏在线试玩,小游戏下载及攻略,更多好玩小游戏尽在www.4399.comhttps://www.4399.com/flash/20929_3.htm
2.连连看小游戏,连连看小游戏大全,连连看下载,4399连连看小游戏大全4399连连看全集小游戏大全收录了国内外果蔬连连看小游戏,在线小游戏连连看,连连看小游戏下载,爱情连连看,游戏连连看3.1,阿达连连看,好玩就拉朋友们一起来玩吧!http://www.4399.net/special/8.htm
3.宠物连连看3.1游戏简介 宠物连连看3.1,宠物连连看的最新版本。在功能上有了不少的升级和改变,难易程度上也做了更合适的修改。使你玩起来的时候不用那么伤脑筋了!玩友们来吧,体验新版连连看! 游戏目标 在有限的时间里,用我们智慧消除相连卡片,通过9关卡获得最终的胜利 ...https://www.doyo.cn/flash/game/526999
4.我在4399小游戏上玩了宠物连连看3.1,...来自让艹再飞一会我在4399小游戏上玩了《宠物连连看3.1》,很有意思~~分享给大家!来试试吧! http://t.cn/A6UR4jv9 https://weibo.com/5678728351/JgkPN1tM2
5.llk宠物连连看llk宠物连连看小游戏llk宠物连连看提供llk宠物连连看小游戏,llk宠物连连看4399,llk宠物连连看下载,llk宠物连连看单机版,llk宠物连连看攻略,llk宠物连连看在线玩,单机llk宠物连连看下载,llk宠物连连看小游戏大全。https://m.973.com/68897
6.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
7.宠物连连看2.5版小游戏宠物连连看2.5版在线玩《宠物连连看2.5版》是2.0版的升级版本。加入了空格键暂停游戏的功能,画面有所调整,修正了到6关时程序不能继续的bug,游戏中的难度有所降低。 操作方法:鼠标操作,将图案相同的两张图片用三跟以内的直线连在一起消除。 类型:宠物宠物连连看益智经典连连看|大小:243K ...http://www.43999yx.com/yizhi/9454_play.htm
8.宠物连连看宠物连连看安卓版下载宠物连连看游戏推荐游戏简介 《宠物连连看》是一款有趣的消除类休闲游戏,关卡丰富画风精简可爱,点击两个相同的两个小动物即可将它们消除,在规定时间内将游戏中的动物消除完即可通关。关卡内还有炸弹、洗牌和提示等道具帮助你更好地完成挑战,感兴趣的小伙伴快来挑战一下吧~ https://a.4399.cn/game-id-256626.html
9.宠物连连看3.1秘籍,宠物连连看3.1攻略,4399小游戏www.4399...《宠物连连看3.1秘籍,宠物连连看3.1攻略,4399小游戏 www.4399...》剧情简介:本田为何会跌跌不休这一波降价的尽头将在哪里让社长带大家一起看一下招凝没有多说她现在的情况其实没有太多办法参与到昆虚后事了宠物连连看3.1秘籍,宠物连连看3.1攻略,4399小游戏 www.4399...中众天尊看了一眼转而只能应了...http://www.catholicsh.org/cur20240804/ezcyfocxf.aspx
10.360游戏大厅暑假热门小游戏大全4399小游戏大全360游戏大厅为你推荐暑假热门小游戏,包含4399,7k7k的热门小游戏,还有双人游戏,女生最爱小游戏和连连看小游戏,总有一款适合你!快来试试吧!http://360game.360.cn/theme/2017sjxyx_web.html?src=so-gjctq
11.小游戏,7k7k小游戏,小游戏大全,双人小游戏,7k7k官网7k7k小游戏大全包含连连看,连连看游戏,双人小游戏,赛尔号,洛克王国,三国杀,在线小游戏,斗地主,象棋,扫雷,麻将,h5,h5游戏,迷你世界,7k7k奥拉星,7k7k奥比岛,7k7k弹弹堂,单人游戏,逃跑吧少年,斗罗大陆,7k7k冒险王,召唤神龙等最新小游戏。http://8.7k7k.com/
12.4399连连看v1.0下载益智游戏4399连连看包括以下连连看游戏宠物连连看3.0,宠物连连看2.6,QQ连连看,厨房连连看等众多连连看游戏。 2.4399连连看是一款下载到本地就可以直接游戏的软件: 4399连连看不需要连接到网络就可以在本地直接游戏的小游戏软件。 3.4399连连看是一款免费、安全、绿色的小游戏软件: ...https://www.crsky.com/soft/16187.html
1.宠物连连看3.1手机版下载4399小游戏连连看宠物,轻松娱乐,趣味无限3、游戏技巧 随着互联网的飞速发展,4399小游戏平台以其独特的魅力吸引了众多玩家的目光,连连看宠物作为一款备受欢迎的休闲益智游戏,不仅简单易上手,而且趣味性强,适合各年龄段玩家。 游戏特点: 连连看宠物是一款以宠物为主题的连连看游戏,具有以下显著特点: https://www.ahpex.com.cn/post/22833.html
2.经典手游小游戏,宠物连连看游戏推荐hello大家好,我是本站的小编子芊,今天来给大家介绍一下经典手游小游戏,宠物连连看游戏推荐的相关知识,希望能解决您的疑问,我们的知识点较多,篇幅较长,还希望您耐心阅读,如果有讲得不对的地方,您也可以向我们反馈,我们及时修正,如果能帮助到您,也请你收藏本站,谢谢您的支持! http://www.1154.net/article/3800.html
3.4399小游戏精灵排行榜,经典4399小游戏推荐4399小游戏精灵排行榜,经典4399小游戏推荐 一、4399智力游戏排行榜是怎么样的 4399智力游戏排行榜:《宠物连连看》、《森林冰火人中文版》、《高楼爆破3勋章版》。 1、《宠物连连看》 《宠物连连看》考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,...http://www.777au.com/shouyou/a7526412.html
4.纽扣连连看可能你玩过了4399小游戏中水果连连看,宠物连连等各式各样的连连看,但你应该还没看过全是纽扣的连连看吧,千万别看花了眼哦,纽扣连连操作上很简单点击两个相同图标,如果图标间的连线转折不超过两次并且不经过其他图标,即可消除哦。游戏的最终目标是消除更多的图标,挑战更高的得分吧! https://apps.apple.com/cm/app/%E7%BA%BD%E6%89%A3%E8%BF%9E%E8%BF%9E%E7%9C%8B-4399%E5%B0%8F%E6%B8%B8%E6%88%8F%E8%BF%9E%E8%BF%9E%E7%9C%8B%E7%BB%8F%E5%85%B8%E5%8D%95%E6%9C%BA%E7%89%88/id1068198476
5.宠物连连看2.5,每关分别是什么4399小游戏的凯茄宠物盯者察连连看2.5版共有9关.~ 希望我的回答能解决您的疑问嫌没,您的支持是我们前进的动力~4399有您更精彩。 宠物连连看2.5版的介绍 《宠物连连看2.5版》扒纯为一款益智春销咐类的小游戏,主要考验玩家的眼力。游戏画面斗型具有宠物等可爱元素。 https://si84.com/news/xydt/14043.html
6.4399游戏宠物连连看,经典益智游戏的乐趣与策略在互联网游戏世界中,益智类小游戏因其简单易上手、趣味性强等特点,深受广大玩家的喜爱,4399游戏平台的“宠物连连看”游戏以其独特的玩法和可爱的宠物形象,吸引了无数玩家的目光,本文将详细介绍这款游戏的玩法、特点以及其中蕴含的益智策略。 一、游戏概述 http://m.ntjyl.cn/glzx/42519.html
7.死神vs火影3.23小游戏(死神vs火影3.2下载)游戏玩法老铁们,大家好,相信还有很多朋友对于死神vs火影3.23小游戏和死神vs火影3.2下载的相关问题不太懂,没关系,今天就由我来为大家分享分享死神vs火影3.23小游戏以及死神vs火影3.2下载的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧! 4399经典小游戏有: ...https://www.hxtkd.com/post/6479.html