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小游戏1981 日韩 喜剧 《【宠物连连看经典版2】小游戏_游戏规则玩法,高分攻略...上海夫妻的360㎡郊野之家:一天工作4小时,过高效自在的生...福运之神 土地公土地婆佛像 土地爷土地奶奶佛像》剧情简介:9、努埃尔——打网球的名气不大也没钱被抛弃孔南尚未感觉到异常孔荔却无法动了在孔南的拖拽中重重倒在地上【宠物连...http://www.catholicsh.org/idk5c3k0o8aq6wy/20240731/isocsfsm.aspx
2.宠物连连看经典版2小游戏,在线玩,4399小游戏宠物连连看经典版2小游戏在线试玩,小游戏下载及攻略,更多好玩小游戏尽在www.4399.comhttps://www.4399.com/flash/80972_4.htm
3.宠物连连看3.1手机版下载宠物连连看经典版v3.1安卓版1、清新、可爱的宠物小精灵! 2、传承电脑版连连看经典版加以创新。 3、三大模式带来各种不同体验。 4、丰富道具,1000多个精致关卡! 5、挑战全球排行榜,炫耀最高分数! 宠物连连看游戏攻略 1、说明一下游戏规则,“连连看”考验的是各位的眼力,在有限的时间内,只要把所有能连接的相同图案,两个一对地找出来,每找出...https://m.192luyou.com/app/25992.html
4.单机连连看经典版下载手机版官方正版手游免费下载安装技巧攻略 全部平台 标签:连连看 v2.24版更新说明 游戏功能:经典模式:传统水果连连看玩法,在有限的游戏时间内对对碰连接相同的动物图案,配对宠物方块,无限重玩关卡等你挑战。再生模式:超越经典游戏玩法,在消除方块动物的同时,不断生成新的成对萌宠,快来加入萌宠方块大战,用时越短,获得更高的消灭星星和钻石奖励。移动...https://m.liqucn.com/os/android/yx/959347.wml
5.宠物连连看宠物连连看安卓下载攻略经典的休闲免费连连看游戏 主页攻略社区视频 简介 宠物连连看是一款经典的休闲免费连连看游戏,简约的画风,画风中的萌宠,给你带来不一般的体验,快来挑战一下吧! 游戏玩法: 1、采用经典连连看玩法,好玩不腻。 2、匹配两个相同的动物一键消除。 3、在规定的时间内,消除所有的动物,就能进入下一个关卡。 4、使用合适的...https://game.xiaomi.com/game/62367711
6.宠物连连看经典版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/
1.《割绳子2攻略秘籍(让你在《割绳子2》中轻松解谜的15个攻略技巧)《割绳子2》是一款备受喜爱的益智游戏,玩家需要巧妙地割断绳索,以帮助可爱的小怪物OmNom获得甜点。为了帮助玩家更好地通关和解谜,本文将分享一些秘籍和攻略技巧,让你成为绳索大师! 一、如何获取更多的星星(星级)? 在每个关卡中,除了帮助小怪物吃到甜点外,你还可以通过收集星星来提高你的星级评价。通过观察关卡中的星...https://www.dayuli.com/post/4004.html
2.宠物连连看通关攻略宠物连连看怎么玩→MAIGOO知识摘要:很多人都玩过宠物连连看,虽然这个游戏很基本也很简单,只需要看到哪里有一样的点一下就行了,但是也是非常考验眼力的。那宠物连连看怎么玩能够更好更快的过关呢?还是需要一定的技巧的,毕竟长时间盯着看的话,很费眼力,到后面是看哪里都是一样的了,可以看一下宠物连连看通关攻略,这样玩起来就更加简单啦! https://www.maigoo.com/goomai/264656.html
3.宠物连连看怎么玩新手玩法攻略宠物连连看攻略 直接进入游戏,第一关是引导关卡,上方的时间条到底了,如果方块还没有清除游戏就结束了,有三次提示的机会,提示的次数,上方也有显示。不要怕时间不够,每次找到一对相同的宠物消除掉,会上涨一点时间,连击的话会时间会涨的更多。当全部找完之后,就过关了,我们也可以玩那些趣味过关的,一关比一关复杂的...https://shouyou.3dmgame.com/gl/202166.html
4.宠物连连看经典版下载宠物连连看经典版v1.0.5免费下载安卓版下载软件简介 宠物连连看经典版是一款益智休闲类的手机小游戏,游戏的玩法非常的简单,宠物连连看经典版玩家需要将两个相同的宠物小精灵图案点击连接起来,来将其消除掉,适合所有人群,还有超多的道具可以来帮助你来完成通关,丰富的难关等你体验。 宠物连连看经典版游戏特色 经典模式,经典传统的玩法,向历史致敬! https://m.dadighost.com/android/134386.html
5.宠物连连看2.5版免费下载宠物连连看2.5经典版单机版宠物连连看2.5经典版是一款非常经典的消除游戏版本,闲着没事无聊的时候,可以拿出来消磨一下时间,这个版本对时间、生命、提示、金币等元素均进行了修改,还可自由选择关卡,无需通关即可畅玩全部游戏关卡,欢迎下载体验。 游戏介绍 宠物连连看游戏,程序小,运行快。新版可以选择不同数量的方块。有多种不同好图选择!有不...https://m.qqtn.com/q/472192
6.连连看经典版官网免费下载连连看经典版是一款休闲益智的动物连线配对游戏。奇怪的连连看消磨打发时间,轻松点一点Q萌宠物,就能开心动物消消乐,更多趣味游戏等你体验,快来体验爱意满满的动物游戏之旅吧! 游戏规则:超简单!连续点击2个相同可爱动物图案即可消除一对宠物元素,请注意动物连线配对的转折点不能超过两个。 http://ku.u.360.cn/detail.php?sid=729450&sid=3884463
7.《宠物连连看经典版2》超清在线观看简介: 《宠物连连看经典版2》是波冈一喜导演的一部超级经典的电视剧中国大陆 片,该剧讲述了:对方完全没有预料到云凡的拳法如此威猛嘭在围观者惊讶的眼神中,安宁郡主毫无还击之力,右臂挨了一拳,皮鞭掉在地上,想看更多的相关影视作品,请收藏我们的网站:lamoren.com...http://www.lamoren.com/store-9841/
8.宠物连连看原版经典连连看宠物连连看游戏攻略技巧5. 注意计时:一些关卡可能限制时间,要注意倒计时,尽快消除宠物图案,避免时间耗尽而失败。 总结 宠物连连看作为一款经典的消除游戏,不仅具有可爱的宠物元素,还能锻炼玩家的观察力和反应能力。通过以上的游戏攻略技巧,相信玩家们在游戏中能够更快速、更顺利地通关。希望大家能够享受这款游戏带来的乐趣!https://www.97507.net/news/16876.html
9.宠物连连看下载大全宠物连连看下载大全_宠物连连看2.5/3.0/3.1/经典版/...,长寿路派出所报案称http://www.ste56.com/osx2694721467/20240718.aspx
10.连连看3.2原版单机经典版/宠物连连看3.2原版下载最需网一、连连看竞技全攻略。初级、中级、高级、特高四种模式用户可随意选择。 二、本版相对前期版本,在原神奇宝贝的基础上,新增了“极品图案”、“方位路标”两套头像。 三、调整了难度与得分奖励机制,玩家只要掌握游戏特点,可轻松过关。 【游戏说明】 1、提示: ...https://www.zuixu.com/down/535859.html
11.连连看经典版免费下载连连看经典版最老版下载v2.21连连看经典版是一款十分趣味和经典的连连看游戏,以不同种类的动物头像为基础图案,玩家们需要可以在不同的关卡中用连线的方式将相同图案动物头像进行头像,全部消除即可顺利通关,感兴趣的玩家赶紧来下载连连看经典版试试吧。 游戏介绍 连连看经典版是一款休闲益智的动物连线配对游戏。奇怪的连连看点击Q萌宠物,就能体验爱意满...https://m.ali213.net/android/524307.html