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....宠物连连看经典版下载安装宠物连连看游戏下载大...宠物连连看是非常好玩的休闲消磨时间的游戏,因其可爱的宠物主题和刺激的连连消除玩法而备受玩家喜爱,简单易懂的规则和丰富多样的关卡设计,为玩家带来了无尽的乐趣和挑战。随着游戏的爆火,厂商也是做出了各个版本,于是小编就给大家带来了宠物连连看版本大全,里面有宠物连连看经典版、宠物连连看3d版、宠物连连看单机版等等,对...https://www.ddooo.com/zt/cwllk.htm
2.宠物连连看经典版2小游戏1981 日韩 喜剧 《【宠物连连看经典版2】小游戏_游戏规则玩法,高分攻略...上海夫妻的360㎡郊野之家:一天工作4小时,过高效自在的生...福运之神 土地公土地婆佛像 土地爷土地奶奶佛像》剧情简介:9、努埃尔——打网球的名气不大也没钱被抛弃孔南尚未感觉到异常孔荔却无法动了在孔南的拖拽中重重倒在地上【宠物连...http://www.catholicsh.org/idk5c3k0o8aq6wy/20240731/isocsfsm.aspx
3.宠物连连看旧版游戏下载宠物连连看旧版正式版下载v2.3宠物连连看旧版是一款非常经典的休闲益智解压游戏。游戏玩法简单,规则简单易用,充满挑战。我陪你一起向经典致敬。游戏中,有大量的游戏性内容,请下载安装!宠物连连看旧http://www.1666.com/az/v591562.html
4.最多人玩宠物连连看小游戏大全,最多人玩宠物连连看相关游戏...7k7k小游戏宠物连连看、搜索结果为您提供宠物连连看、的小游戏大全,宠物连连看、小游戏推荐,宠物连连看、最新游戏,最多人玩的宠物连连看、游戏,宠物连连看、游戏专题,宠物连连看、游戏全集,宠物连连看、相关游戏https://so.7k7k.com/game/%E5%AE%A0%E7%89%A9%E8%BF%9E%E8%BF%9E%E7%9C%8B%E3%80%81/hot.htm
1.全面解析宠物连连看可爱版2的玩法与攻略分享首先,宠物连连看可爱版2的基本玩法与传统连连看相似。玩家需要在一个充满各种可爱宠物图案的游戏界面中寻找并连接相同的宠物图案。连接的规则是,连线必须不超过两个弯角,并且在连接的过程中不能穿过其他图案。游戏目标是在规定的时间内将所有相同的宠物图案配对消除。这个规则的简洁明了,使得新手玩家也能轻松上手,但同时...http://m.sqdtv.com/guanwang/42766.shtml
2.宠物连连看通关攻略宠物连连看怎么玩→MAIGOO知识宠物连连看游戏规则 1、选择一对相同的头像连线,但此连线必须是在避开其他图片后,连结不超过二个弯,如符合规定则消除此一对头像而得分。 2、每一局里玩家需要在规定的时间内消除所有的头像,当完成任务后,方能进行下一关,当出现残局时,游戏会自动重新洗牌,过关的玩家可以上排行榜。 https://www.maigoo.com/goomai/264656.html
3.宠物连连看攻略宠物连连看攻略介绍导读新玩家需要了解的是《宠物连连看》的基本规则。游戏目标非常明确,即在限定时间内清除所有宠物图块。玩家需找到两个相同的宠物图块,并确保这两个图块能够通过直线或折线连接,且折线最多只能拐两次。连接成功即可清... 新玩家需要了解的是《宠物连连看》的基本规则。游戏目标非常明确,即在限定时间内清除所有宠物图...https://www.9game.cn/news/9923779.html
4.宠物连连看:高分比赛的成功技巧宠物连连看是一款简单有趣的游戏,通过了解游戏规则、观察和记忆技巧、分组练习、掌握特殊道具的使用、保持冷静和耐心以及不断练习和总结等技巧,玩家可以在游戏中取得更好的成绩。希望这些技巧能够帮助更多的玩家在宠物连连看的高分比赛中取得成功。 宠物连连看:高分比赛的成功技巧的介绍就聊到这里吧,感谢你花时间阅读本站...https://sousou.com/gl/140980.html
5.宠物连连看经典版ios下载(暂未上线)《宠物连连看经典版》本款老版宠物连连看的推出,只是为了满足部分不能适应新版宠物连连看的用户,还有就是应老用户要求放出,以答谢各位老用户对本游戏的热爱。 游戏特色 1、该游戏每天的活跃用户达8万人,共40万人下载过本游戏; 2、宠物连连看-经典回顾版,你还等什么; 3、分为十二关,难度递进。 游戏规则 ...https://shouyou.3dmgame.com/ios/16068.html
6.经典宠物连连看下载经典宠物连连看2.0下载游戏概述 配置要求 安装说明 相关下载 新闻攻略 资源地址 游戏介绍 经典宠物连连看游戏,程序小,运行快。 【规则简介】需要选择一对相同的图案连线,但此连线是在避开其他图案后,呈现的路径以不超过两次转弯,如符合规定则消除此对图案而得分。 资源地址 版本说明我要报错 ...https://down.ali213.net/mini/game_7575.html
7.宠物连连看版(暂未上线)点击查看大图 软件介绍 《宠物连连看》是“连连看小游戏”中热门的一个小分类,玩法规则简单容易上手,只要将相同的两张牌用三根以内的直线连在一起就可以消除,意在开发大脑、提高思维能力和帮助发散思维。 宠物连连看版下载地址 软件已下架,不提供下载服务!https://www.xiazaiba.com/html/64406.html
8.宠物连连看3.1无敌版H5,宠物连连看3.1无敌版H5在线玩3699小游戏益智游戏 宠物连连看3.1无敌版H5 宠物连连看3.1无敌版H5考验的是各位的眼力,这一版拥有无限提示次数,你需要在有限时间内找出颜色相同的图案并连接,连接后相同的图案就会消失,连接的规则是连接产生的折线至多拐折两次并且折线不能从图案上穿过,而你的任务就是在有限时间内消灭所有的图案,快来试试吧! https://www.3699.cn/p/11368.htm
9.安卓连连看单机版下载手机连连看小游戏大全手机连连看游戏一直都是大家必备的休闲精品,这类游戏题材多样,玩不腻,最适合无聊的时候打发时间了,这个小编深有体会,此次腾牛安卓网游戏速递特别为大家免费提供各类好玩的安卓手机连连看游戏免费下载,保证不会让您失望.https://www.qqtn.com/az/azllkyx/
10.连连看经典版官网免费下载连连看经典版是一款休闲益智的动物连线配对游戏。奇怪的连连看消磨打发时间,轻松点一点Q萌宠物,就能开心动物消消乐,更多趣味游戏等你体验,快来体验爱意满满的动物游戏之旅吧! 游戏规则:超简单!连续点击2个相同可爱动物图案即可消除一对宠物元素,请注意动物连线配对的转折点不能超过两个。 http://ku.u.360.cn/detail.php?sid=729450&sid=3884463
11.连连看类手游排行榜小米手机连连看游戏大全小米手机连连看类手游排行榜由点点数据提供。本次排行榜包含了:小游戏、宠物连连看、开心水果连连看、宾果消消消?、麻将连连看、成语消消闯关、羊了个羊、星星消消乐单机游戏、萌宠连连看、四喵-游戏陪玩陪练软件等十大连连看类手游排行榜 1排名 小游戏 【首页推荐】海量游戏,全面推荐 【即点即玩】无需安装,点击秒...http://vip.diandian.com/phb/505/3-1.html