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.1,宠物连连看3.1小游戏,4399小游戏www.4399.com介绍:宠物连连看3.1,宠物连连看的最新版本,最新版本中增加了以下功能:1.空格键暂停。2.界面更新。3.修正了到6关时程序不能继续的bug。4.难度降低。此款连连看小游戏在难易程度上做了修改,相对于其他版本的连连看简单了很多,使你玩起来的时候不用那么伤脑筋了!https://www.4399.com/flash/17801.htm
2.宠物连连看2可爱版宠物连连看2可爱版大全,最新宠物连连看2...宠物连连看2可爱版 专题介绍: 宠物连连看2可爱版是由2436小游戏为您提供的,这里有宠物连连看2可爱版,宠物连连看2可爱版大全,最新宠物连连看2可爱版,宠物连连看2可爱版双人 上一篇:骷髅餐厅,下一篇:光明骑士 宠物连连看2可爱版大全 最新发布 小图模式大图模式...http://www.2436.cn/zhuanti/ChongWuLianLianKan2KeAiBan/
3.梦幻宠物连连看2梦幻宠物连连看2攻略梦幻宠物连连看2安卓游戏介绍: 梦幻宠物连连看2,喜欢连连看的你还不来试试~精美的画面,全新的可爱宠物,超多关卡可以挑战,3次帮助机会...这个游戏将是你消磨时间的新宠哦~ 玩法:点击两个相同的宠物进行连接消除梦幻宠物连连看2相关图片 这里是07073手机游戏网梦幻宠物连连看2专区!在梦幻宠物连连看2专区,您可以查看梦幻宠物连连看2攻略...http://www.07073.com/sy/13305.html
4.梦幻宠物连连看2梦幻宠物连连看2小游戏在线玩梦幻宠物连连看系列推出了第二部,不少人无聊的时候就会玩,这是最新心爱版的,喜好玩连连看的朋友万万不要错过! 操作方法 mouseleft鼠标操作点击两个相同的宠物图案。 鼠标操作点击两个相同的宠物图案。 梦幻宠物连连看2相关游戏推荐 爱撕衣一 007与小护士 多种水果连连看 开心斗地主Flash版 公交站调情 重力...https://www.45575.com/swf/61825.htm
5.梦幻宠物连连看2益智小游戏梦幻宠物连连看23.90分 益智2.37 MB 介绍:梦幻宠物连连看2:梦幻宠物连连看系列推出了第二部,这是最新可爱版的,喜欢玩连连看的朋友千万不要更多>> 操作说明: [鼠标左键]鼠标操作,鼠标操作点击两个相同的宠物图案,如果两个图案之间没有阻碍且连接的线路少于三条线段即可消除; ...http://wan.rising.cn/xyx/game-25502-5.aspx
6.宠物连连看可爱版2宠物连连看可爱版2游戏在线玩玛法传奇极速拉力赛车迷你生活萌萌狗孤独的鹦鹉大力水手植物大战僵尸2女神驾到保卫萝卜 游戏介绍: 非常有爱的宠物小精灵连连看,你还记得以前追动漫的那种岁月吗?一起来回味一下吧!操作说明: 两个相同图标,如果图标间的连线转折不超过两次并且不经过其他图标,即可消除哦。如何开始: 点击【开始游戏】。游戏目标: 把所有的...https://m.973.com/p80021
7.宠物连连看经典版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/
8.宠物连连看经典版2下载宠物连连看经典版2官方下载华军软件园为您提供宠物连连看经典版2电脑版官方下载,宠物连连看经典版21.1免费下载。宠物连连看,最经典的消除休闲小游戏!点两个相同图案的宠物图片,如果连接这两个图片的直线不超过三条,并且不碰到http://www.onlinedown.net/soft/951982.htm
9.宠物连连看经典版2,宠物连连看经典版2小游戏,360游娱司宠物连连看经典版2 类型:益智 更新时间:2022-07-08 简介:【宠物连连看经典版2勋章版】是继宠物连连看经典版之后的改进版,更合理的关卡,更刺激的体验,超级酷炫的42种精致的宠物小图,堪称连连看中的经典。玩宠物连连看经典版2,挑战敏捷类游戏极限! 复制 https://xiaoyouxi.360.cn/detail?id=bcIeZYM5SyWmPk
1.《宠物连连看可爱版2》完整版免费在线观看枪战剧情: 《宠物连连看可爱版2》剧情介绍:这时候,林白不禁的想起了黑罗剑九,双目一眯的说道:此人可真是逆天啊,能将霸剑道修炼到如此水准,这东州之上,恐怕已经很难有人能与他一战了?[展开全部]好影片,与好朋友一起分享 立即播放 在线观看相关影片 德国 古装 动画 古装 历史 捡到校霸的遥控器 1080P ...http://www.sxsczx.cn/vplayer/lianxuju/MXpuRpSf.html
2.梦幻宠物连连看2《梦幻宠物连连看2》是一款益智小游戏,游戏大小2.43M。 中文名 梦幻宠物连连看2 游戏平台 pc 游戏类型 益智小游戏 游戏大小 2.43M 目 录 1背景设定 2操作指南 如何开始 操作方法 3游戏目标 梦幻宠物连连看系列推出了第二部,这是最新可爱版的,喜欢玩连连看的朋友千万不要错过。[1] ...https://baike.sogou.com/v56643360.htm
3.梦幻宠物连连看2v1.0安卓版梦幻宠物连连看2 v1.0,掌上游侠提供全平台梦幻宠物连连看2 v1.0下载,最新手机版梦幻宠物连连看2 v1.0,梦幻宠物连连看2 v1.0iOS,梦幻宠物连连看2 v1.0iPhone(iPad)版,梦幻宠物连连看2 v1.0安卓版,梦幻宠物连连看2 v1.0WP版,梦幻宠物连连看2 v1.0攻略,梦幻宠物连连看2 v1.0评https://app.ali213.net/zt/mhcwllk2/
4.宠物连连看2饲.5顺锸全部小说宠物连连看2饲.5顺锸作品集话本小说网免费提供宠物连连看2饲.5顺锸作品集, 宠物连连看2饲.5顺锸全部小说以及宠物连连看2饲.5顺锸新书在线全文阅读,提供给您最全面的宠物连连看2饲.5顺锸小说集在线阅读服务,欢迎查看。https://user.ihuaben.com/58088861
5.宠物连连看可爱版2单机版下载宠物连连看可爱版2下载宠物连连看可爱版2是一款非常经典好玩的连连看单机游戏,它不仅有着非常多的关卡设计,越往上关卡越困难,对于玩家来说是一个巨大的挑战。喜欢的话就来IT猫扑网下载吧!游戏简介《宠物连连看可爱版2》是一款休闲益智类小游戏。《宠物连连看可爱版2》,挑战敏捷https://www.itmop.com/downinfo/4817.html
6.宠物连连看可爱版2单机版下载宠物连连看可爱版2宠物连连看可爱版2是一款以宠物连连看为背景制作的连连看休闲益智类游戏作品。玩家们将可以体验到挑战敏捷极限的玩法,并且拥有13大挑战关卡可供玩家们体验,喜欢的玩家们赶快来下载进行体验这款连连看游戏吧! 游戏亮点说明 挑战敏捷极限。 增加两个可爱精灵。 加入幸运元素。 考验大家的思维能力。 游戏操作说明 如何开始:...https://www.qqtn.com/down/576829.html
7.宠物连连看可爱版2在线玩宠物连连看2.5无敌版(无限提示) 游戏介绍 分类:休闲| 大小:536.99 KB| 评分:8.3 宠物连连看可爱版2,一款连连看小游戏,同时也是一款神奇宝贝游戏。新版本的宠物连连看可爱版,一共有13关哦,每过一关增加两个新的可爱的宠物小精灵,到13关了一共会有多少宠物小精灵出来呢? https://www.17yy.com/f/play/74874.html
8.宠物连连看可爱版2下载宠物连连看可爱版2手机版下载v1.2宠物连连看可爱版2是一款可爱的宠物游戏,只要把所有能连接的相同图案,两个一对地找出来,游戏的玩法还是很简单的,最主要是训练眼明手快及增强逻辑判断能力,感兴趣的玩家快来下载游玩吧。https://www.lanrentuku.com/shouyou/453575.html
9.《宠物连连看可爱版2》电影在线观看全集恐怖片《宠物连连看可爱版2》是LeeSe-il导演的一部超级经典的恐怖美国片,该剧讲述了:詹妮弗·杰森·李饰演的单身母亲带着两个女儿以及因为一场事故身受重伤如今躺在床上不省人事的儿子(卡梅隆·莫纳汉)搬进了这栋“非常邪”的房子恐怖的事情也随之开始屋中的恶灵似乎盘踞到了昏迷的儿子,想看更多的相关影视...http://www.min-an.com/article-2783213.html