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.1H5宠物连连看3.1H5html5游戏在线玩4399迷你世界 赛尔号 游戏玩法 (本游戏合适16岁以上用户) 操作指南 鼠标操作 如何开始 游戏加载完毕后点击[开始游戏]即可 游戏目标 合理操作,挑战关卡! 游戏介绍 宠物连连看3.1H5版本强势来袭!此款连连看小游戏在难易程度上做了修改,相对于其他版本的连连看简单了很多,使你玩起来的时候不用那么伤脑筋了! 其...https://www.4399.com/flash/231124_4.htm
2.宠物连连看3小游戏宠物连连看3在线玩游戏目标: 尽可能多的消掉出现的宠物吧! 游戏介绍: 宠物连连看的最新版本出来了,还记得那些栩栩如生的小动物吗,今天推出的第三版由卡酷游戏特约制作,所有宠物图片都换成最新的,超可爱超卡通,一共4关,难度降低,更适合小朋友,一起来玩吧。 类型:宠物 宠物连连看 益智 连连看 | 大小:604K 本类推荐 最新游戏 最热...http://www.43999yx.com/yizhi/30955_play.htm
3.宠物连连看4399小游戏大全宠物连连看3·1无敌版4399小深给大家谈谈宠物连连看4399小游戏大全,以及宠物连连看3·1无敌版4399应用的知识点,希望对你所遇到的问题有所帮助。 宠物连连看4399小游戏大全 宠物连连看3·1无敌版4399 1、二战前线2完整版。 2、 可以调武器。 3、属于合金弹头类的。 4、每过一关都可以调换武器是女生的话就玩摩尔庄园或者装扮类的,男生的话...https://edu.iask.sina.com.cn/jy/h1ru4O9G9F.html
4.连连看小游戏大全连连看游戏游戏连连看免费下载连连看小游戏大全结合了当下最轻松休闲的趣味玩法,是时下最好玩最放松的益智手游,华丽的游戏界面,流畅的操作快感,简单的玩法,发泄一天的疲劳感,玩这款游戏能够有效的进行解压,有兴趣的不妨前来当易网下载!http://www.downyi.com/key/lianliankan/
5.宠物连连看3.1游戏简介 宠物连连看3.1,宠物连连看的最新版本。在功能上有了不少的升级和改变,难易程度上也做了更合适的修改。使你玩起来的时候不用那么伤脑筋了!玩友们来吧,体验新版连连看! 游戏目标 在有限的时间里,用我们智慧消除相连卡片,通过9关卡获得最终的胜利 ...https://www.doyo.cn/flash/game/526999
6.连连看小游戏,连连看小游戏大全,连连看下载,4399连连看小游戏大全4399连连看全集小游戏大全收录了国内外果蔬连连看小游戏,在线小游戏连连看,连连看小游戏下载,爱情连连看,游戏连连看3.1,阿达连连看,好玩就拉朋友们一起来玩吧!http://www.4399.net/special/8.htm
7.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
8.亚当找夏娃3,亚当找夏娃3,亚当找夏娃3小游戏,小游戏请记住本站网址.com,点击,方便下次再玩。 《亚当找夏娃3》小游戏由 用户提供。 相关游戏推荐换一换 精彩专题推荐 连连看全集1202款 拼图3849款 密室逃脱14873款 消消看2245款 解谜1408款 物理4672款 更多 排行榜 月总 1森林冰火人中文版开始游戏 2宠物连连看2.5版 ...http://www.jinpin-edu.cn/4399/flash/147327.htm
9.360游戏大厅暑假热门小游戏大全4399小游戏大全360游戏大厅为你推荐暑假热门小游戏,包含4399,7k7k的热门小游戏,还有双人游戏,女生最爱小游戏和连连看小游戏,总有一款适合你!快来试试吧!http://360game.360.cn/theme/2017sjxyx_web.html?src=so-gjctq
10.我在4399小游戏上玩了宠物连连看3.1,...来自让艹再飞一会我在4399小游戏上玩了《宠物连连看3.1》,很有意思~~分享给大家!来试试吧! http://t.cn/A6UR4jv9 https://weibo.com/5678728351/JgkPN1tM2
11.llk宠物连连看llk宠物连连看小游戏游戏介绍: 很可爱的一款连连看游戏,主题是水果宠物,来试试看吧!操作说明: 点击两个相同图案,相同颜色的图标就可以进行消除。注意两个图标之间不能有其他图标阻挡,否则不能消除。屏幕上所有图标全部消除则为胜利!如何开始: 点击“开始游戏”进行游戏游戏目标: 相同颜色的图标进行消除同类...https://m.973.com/68897
12.小游戏,7k7k小游戏,小游戏大全,双人小游戏,7k7k官网7k7k小游戏大全包含连连看,连连看游戏,双人小游戏,赛尔号,洛克王国,三国杀,在线小游戏,斗地主,象棋,扫雷,麻将,h5,h5游戏,迷你世界,7k7k奥拉星,7k7k奥比岛,7k7k弹弹堂,单人游戏,逃跑吧少年,斗罗大陆,7k7k冒险王,召唤神龙等最新小游戏。http://8.7k7k.com/
13.宠物连连看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
14.大家知不知道有什么好玩的小游戏,最好是益智类的?汽车问答·喜羊羊连连看 ·4399大富翁 ·偷袭武士3(下) ·火影对决 ·智力渡河 ·无敌连连看 ·新版消消看 ·罪案现场十二:人间大 ·帮阿Sue整理书房 ·呕吐小怪 ·韩国麻将连连看 ·3D麻将连连看 ·贪吃蛇 ·梦幻宠物连连看 ·猪之旅 ·喜羊羊甜点连连看 ·拯救沸羊羊 ·超级宠物大战 ·堆方块 ·寒筝连连看 ·...https://m.58che.com/wenda/1366824.html
1.4399小游戏精灵排行榜,经典4399小游戏推荐4399小游戏精灵排行榜,经典4399小游戏推荐 一、4399智力游戏排行榜是怎么样的 4399智力游戏排行榜:《宠物连连看》、《森林冰火人中文版》、《高楼爆破3勋章版》。 1、《宠物连连看》 《宠物连连看》考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出一对,它们就会自动消失,...http://www.777au.com/shouyou/a7526412.html
2.宠物连连看可爱版小游戏有没有什么好玩的联网小游戏啊老铁们,大家好,相信还有很多朋友对于宠物连连看可爱版小游戏和有没有什么好玩的联网小游戏啊的相关问题不太懂,没关系,今天就由我来为大家分享分享宠物连连看可爱版小游戏以及有https://si84.com/news/xydt/14047.html
3.4399游戏宠物连连看,经典益智游戏的乐趣与策略在互联网游戏世界中,益智类小游戏因其简单易上手、趣味性强等特点,深受广大玩家的喜爱,4399游戏平台的“宠物连连看”游戏以其独特的玩法和可爱的宠物形象,吸引了无数玩家的目光,本文将详细介绍这款游戏的玩法、特点以及其中蕴含的益智策略。 一、游戏概述 http://m.ntjyl.cn/glzx/42519.html
4.用Python做一个连连看游戏辅助脚本,完整编程思路分享连连看脚本思路本文介绍如何使用Python开发一个连连看游戏辅助脚本,通过识别游戏图标、模拟鼠标点击完成配对。主要涉及win32gui、PIL、numpy、operator和pymouse等模块,实现游戏截图、图像比较和路径寻找算法。 摘要由CSDN通过智能技术生成 一、说明 简述:本文将以4399小游戏《 宠物连连看经典版2 》作为测试案例,通过识别小图标,模拟鼠标点...https://blog.csdn.net/Python4857/article/details/122114570
5.安卓连连看单机版下载手机连连看小游戏大全手机连连看游戏一直都是大家必备的休闲精品,这类游戏题材多样,玩不腻,最适合无聊的时候打发时间了,这个小编深有体会,此次腾牛安卓网游戏速递特别为大家免费提供各类好玩的安卓手机连连看游戏免费下载,保证不会让您失望.https://www.qqtn.com/az/azllkyx/
6.弓箭手救小人43994399上有什么好游戏本月积分游戏推荐→:海底寻宝|合金弹头峡谷战|摘星计划|可爱对战|海空战记|彩虹妹妹|小熊祖玛|跑跑卡丁车 下载总排行更多 1.宠物连连看2. 2.宠物连连看 3.黄金矿工中文 4.拳皇2000 5. XEVOZ变种战士 6.魔塔~V1.1 7.街机三国志FL 8.特种任务 9.上古神器之二 ...http://www.youxibaodian.com/games/1725249739ayw.html