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可爱版宠物连连看2可爱版大全,最新宠物连连看2...宠物连连看2可爱版 专题介绍: 宠物连连看2可爱版是由2436小游戏为您提供的,这里有宠物连连看2可爱版,宠物连连看2可爱版大全,最新宠物连连看2可爱版,宠物连连看2可爱版双人 上一篇:骷髅餐厅,下一篇:光明骑士 宠物连连看2可爱版大全 最新发布 小图模式大图模式...http://www.2436.cn/zhuanti/ChongWuLianLianKan2KeAiBan/
2.宠物连连看经典版2,宠物连连看经典版2小游戏,360游娱司宠物连连看经典版2 类型:益智 更新时间:2022-07-08 简介:【宠物连连看经典版2勋章版】是继宠物连连看经典版之后的改进版,更合理的关卡,更刺激的体验,超级酷炫的42种精致的宠物小图,堪称连连看中的经典。玩宠物连连看经典版2,挑战敏捷类游戏极限! 复制 https://xiaoyouxi.360.cn/detail?id=bcIeZYM5SyWmPk
3.梦幻宠物连连看2梦幻宠物连连看2攻略梦幻宠物连连看2安卓游戏介绍: 梦幻宠物连连看2,喜欢连连看的你还不来试试~精美的画面,全新的可爱宠物,超多关卡可以挑战,3次帮助机会...这个游戏将是你消磨时间的新宠哦~ 玩法:点击两个相同的宠物进行连接消除梦幻宠物连连看2相关图片 这里是07073手机游戏网梦幻宠物连连看2专区!在梦幻宠物连连看2专区,您可以查看梦幻宠物连连看2攻略...http://www.07073.com/sy/13305.html
4.梦幻宠物连连看2益智小游戏介绍:梦幻宠物连连看2:梦幻宠物连连看系列推出了第二部,这是最新可爱版的,喜欢玩连连看的朋友千万不要更多>> 操作说明: [鼠标左键]鼠标操作,鼠标操作点击两个相同的宠物图案,如果两个图案之间没有阻碍且连接的线路少于三条线段即可消除; 如何开始: 游戏加载完毕点击jugar - 再点击屏幕中间的宠物即可开始游戏 ...http://wan.rising.cn/xyx/game-25502-5.aspx
5.宠物连连看可爱版2下载宠物连连看可爱版2经典单机版下载宠物连连看可爱版2是一款非常多玩家喜欢的连连看游戏版本,里面有超多的神奇宝贝宠物,喜欢该题材的玩家一定会更加亲切,这里你会看到超多的口袋妖怪Q版图案,游戏现在包含了13个关卡,每关多两个可爱的宠物小精灵,每连接一对牌还有幸运机会。,越到后面的关卡,要消除的元素会越来越多。喜欢的朋友可以下载体验~ ...http://www.kkx.net/game/53720.html
6.宠物连连看之星星消灭手机版游戏下载宠物连连看之星...宠物连连看之星星消灭v1.0.2安卓版|报错 软件大小:52Mb 软件语言:简体中文 更新时间:2024-05-11 13:46:25 系统要求:Android/安卓 72.73% 27.27% 使用二维码下载到手机 宠物连连看之星星消灭是一款非常受欢迎的安卓休闲益智游戏。游戏中,玩家需要通过连连看的方式,消除屏幕上的宠物图标,达到指定的消除目标即可过关。https://www.crsky.com/soft/615524.html
7.宠物连连看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/
8.宠物连连看经典版2小游戏1981 日韩 喜剧 《【宠物连连看经典版2】小游戏_游戏规则玩法,高分攻略...上海夫妻的360㎡郊野之家:一天工作4小时,过高效自在的生...福运之神 土地公土地婆佛像 土地爷土地奶奶佛像》剧情简介:9、努埃尔——打网球的名气不大也没钱被抛弃孔南尚未感觉到异常孔荔却无法动了在孔南的拖拽中重重倒在地上【宠物连...http://www.catholicsh.org/idk5c3k0o8aq6wy/20240731/isocsfsm.aspx
1.全面解析宠物连连看可爱版2的玩法与攻略分享在如今的休闲游戏市场中,宠物连连看可爱版2凭借其精美的画面、丰富的玩法和可爱的宠物形象,吸引了大批玩家的喜爱。作为一款经典的连连看类游戏,它不仅能够带给玩家无尽的乐趣,还能锻炼玩家的观察力和反应能力。本文将全面解析宠物连连看可爱版2的玩法与攻略,帮助玩家更好地享受游戏的乐趣。 http://m.sqdtv.com/guanwang/42766.shtml
2.宠物连连看可爱版2在线玩宠物连连看2.5无敌版(无限提示) 游戏介绍 分类:休闲| 大小:536.99 KB| 评分:8.3 宠物连连看可爱版2,一款连连看小游戏,同时也是一款神奇宝贝游戏。新版本的宠物连连看可爱版,一共有13关哦,每过一关增加两个新的可爱的宠物小精灵,到13关了一共会有多少宠物小精灵出来呢? https://www.17yy.com/f/play/74874.html
3.宠物连连看可爱版2手机版下载宠物连连看可爱版2游戏下...宠物连连看可爱版2手机版是一款以宠物为元素的经典连连看休闲游戏,相信不少玩家都玩过单机版的宠物连连看,这款手机版本更多关卡设定,画面更加清新可爱,加上动感的背景音效,趣味性增加。欢迎来IT猫扑下载。 宠物连连看可爱版2游戏介绍 宠物连连看2是一款有趣休闲的消除类休闲游戏,闲暇时刻玩一下就停不下来,免费应用完全...https://www.itmop.com/downinfo/201112
4.萌宠来袭!揭秘宠物连连看单机游戏的无限魅力游戏内拥有各式各样的宠物角色,从呆萌的小狗到可爱的小猫,从灵动的松鼠到神秘的独角兽,每一种宠物都有其独特的外形和技能,玩家在游戏中可以收集并解锁各种宠物,为自己的宠物图鉴增添新成员。 2、创新的连连看玩法 宠物连连看游戏采用了经典的连连看玩法,但同时也有许多创新之处,游戏中设置了多种不同的关卡和挑战模式...http://www.zfsyq.cn/zxgl/25257.html
5.宠物连连看之星星消灭游戏下载游戏简介 宠物连连看之星星消灭是一款好玩的连连看小游戏,在这款游戏中你需要连接两个相同的动物方块进行消除,这样就能够获得对应的分数,将所有的方块都消灭完毕之后就能够完成关卡挑战,感兴趣的小伙伴快来下载游戏体验试试看吧。 游戏内容 具有流畅的操作和简洁清晰的界面设计,体验流畅的游戏流程。 挑战高分和完美完成...https://app.ali213.net/android/553271.html
6.连连看小游戏大全连连看精品25合13.1精装版连连看精品25合1 3.1精装版 用户评分:9.3 用户推荐: 9 19 官方网站:暂无 这是目前流行的25款连连看超级大合集,是单机版游戏,不用连网也一样可以使用。 如果你想一个个地下载连连看游戏,还不如直接下载这款25个连连看的合集。 此连连看精选众多精美的连连看图片,连连看的图案不再单调!这款连连看合集包括:宠物连连看...https://xiazai.zol.com.cn/detail/34/333230.shtml