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.0下载flash版下载地址发表评论查看评论收藏游戏 游戏介绍 游戏标签: 宠物连连看 宠物连连看可爱版2是一款经典的宠物消除单机游戏。玩家只要在每一关卡成功消除掉所有的神奇宝贝图案,就可以顺利过关。每一关中都会多放置两个可爱呆萌的小精灵哦,玩家一定要眼疾手快才可以赢得最后的胜利!快来绿色资源网试玩吧! 游戏介绍 宠物连连看...http://m.downcc.com/d/149042
2.宠物连连看下载1.0.2最新版宠物连连看下载1.0.2最新版,历史版本安装尽在7723手游网,同时还可以查看最新版宠物连连看1.0.2介绍、应用截图、网友评论等宠物连连看下载安装信息https://www.7723.cn/apps/129832
3.宠物连连看经典版2逗游小游戏为你提供最新的宠物连连看经典版2小游戏,免费下载宠物连连看经典版2小游戏,并同时提供最新宠物连连看经典版2小游戏操作方法,助你顺利闯关。在线免费玩宠物连连看经典版2小游戏,马上来逗游小游戏吧,玩游戏其实可以很轻松!https://www.doyo.cn/flash/game/645074
1.宠物连连看可爱版2下载宠物连连看可爱版2《宠物连连看可爱版2》其实是《宠物连连看可爱版》的2.0版本,宠物连连看可爱版2游戏中中你将看到大量可爱的口袋妖怪Q版图案,两个相同图案,如果图案间的连线转折不超过两次并且不经过其他图案,即可消除。游戏一共有13个关卡,越到后面需要消除的种类越多,在消除过程中还有机会得到一些实用的道具。喜欢的小伙伴快来下载吧...https://xiazai.zol.com.cn/detail/43/435490.shtml.html
2.宠物连连看可爱版2单机版下载宠物连连看可爱版2下载地址 宠物连连看可爱版2是一款以宠物连连看为背景制作的连连看休闲益智类游戏作品。玩家们将可以体验到挑战敏捷极限的玩法,并且拥有13大挑战关卡可供玩家们体验,喜欢的玩家们赶快来下载进行体验这款连连看游戏吧! 游戏亮点说明 挑战敏捷极限。 增加两个可爱精灵。 加入幸运元素。 考验大家的思维能力。 游戏操作说明 ...https://www.qqtn.com/down/576829.html
3.python控制手机屏幕连点器python连点器python控制手机屏幕连点器 python 连点器 一、说明 简述:本文将以4399小游戏《 宠物连连看经典版2 》作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对。对于有兴趣学习游戏脚本的同学有一定的帮助。 运行环境:Win10/Python3.5。 主要模块:win32gui(识别窗口、窗口置顶等操作)、PIL(屏幕截图)、numpy(创建矩阵...https://blog.51cto.com/u_16099251/7600979
4.家庭小事作文(通用35篇)2.扫地拖地一次5元,只扫地不拖地一次3元; 3.洗衣服5-8元(按衣服的数量支付); 4.整理房间一次6元(达到妈妈的满意程度); 5.倒垃圾一次一元; 6.本条约自制定之日起实施。 签约人:妈妈女儿 我高兴的签上了我的大名。在心里敲响了自己的小算盘。这下一个月下来我怎么也能挣个一百多吧!哈哈,我的肚子总算有...https://www.ruiwen.com/zuowen/jiating/4954427.html
5.4399小游戏—宠物连连看经典版2—游戏辅助脚本4399游戏辅助期末的时候看到一篇博客,写的宠物连连看的辅助脚本,感觉很有意思,就自己跟着博客自己实现了一遍,开发过程中遇到了一些问题,也体会到了解决问题的乐趣,遂在此记录一下。 先放一下博客的链接:https://www.cnblogs.com/reader/p/10111777.html 这篇博客给出了完整版的代码,大体上我是根据他的思路实现的,只有部分细...https://blog.csdn.net/weixin_43784288/article/details/112965162
6.儿童游戏的种类儿童学习类游戏有哪些→MAIGOO知识⑧拼诗识字2 ⑨娃娃-身体部份识字 ⑩熊孩子识字 5、益智类小游戏 ①森林冰火人中文版 ②宠物连连看3.1 ③宠物连连看2.5版 ④果蔬连连看 ⑤森林冰火人4无敌版 ⑥小鳄鱼爱洗澡中文版 ⑦圆球情侣 ⑧高楼爆破3无敌版 ⑨装载卡车5 ⑩画线送水画线送水https://www.maigoo.com/goomai/155098.html
7.宠物连连看3.4宠物连连看 3.4评分及评论 4.7(满分 5 分) 3,109 个评分 紫紫196588,2020/08/31 我喜欢宠物连连看 宠物连连看伴随着我度过的很多快乐的时光,可以减压、可以消磨时光、更可以让我在升级的时候有成就感。 老少皆宜,我未来很长时间我们一起在玩,难度越来越大! https://apps.apple.com/cn/app/boris-akunin-f-m-tom-2/id381473621?see-all=reviews
8.精选家庭的快乐作文18篇我的妈妈戴着眼镜,在南王中学当老师,妈妈喜欢看衣服,不喜欢买衣服,她最喜欢玩电脑游戏了,最喜欢玩的电脑游戏是“宠物连连看”,妈妈今年39岁了,这就是我的妈妈。 爷爷是农村人,爷爷最喜欢看唱戏的影碟了,爷爷不看影碟时,一天到晚就和一些老爷爷玩。 https://www.qunzou.com/zuowen/660734.html