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.宠物连连看2011,宠物连连看2011小游戏,4399小游戏www.4399.com点击选择相同的图片,如果图片之间可以通过不超过三条的线段连击,且不穿过其他图片,即可消除。 如何开始 点击“PLAY GAME”,然后点击“开始PLAY”即可 游戏目标 限定时间内消除所有图片 请记住本站网址4399.com,点击收藏4399,方便下次再玩。 《宠物连连看2011》小游戏由4399用户提供。https://www.4399.com/flash/42154.htm
2.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
3.宠物连连看4399小游戏大全宠物连连看3·1无敌版4399小深给大家谈谈宠物连连看4399小游戏大全,以及宠物连连看3·1无敌版4399应用的知识点,希望对你所遇到的问题有所帮助。 宠物连连看4399小游戏大全 宠物连连看3·1无敌版4399 1、二战前线2完整版。 2、 可以调武器。 3、属于合金弹头类的。 4、每过一关都可以调换武器是女生的话就玩摩尔庄园或者装扮类的,男生的话...https://edu.iask.sina.com.cn/jy/h1ru4O9G9F.html
4.宠物连连看2011,宠物连连看2011小游戏,4399小游戏www.4399.com点击选择相同的图片,如果图片之间可以通过不超过三条的线段连击,且不穿过其他图片,即可消除。 如何开始 点击“PLAY GAME”,然后点击“开始PLAY”即可 游戏目标 限定时间内消除所有图片 请记住本站网址4399.com,点击收藏4399,方便下次再玩。 《宠物连连看2011》小游戏由4399用户提供。http://www.4399.net/flash/42154.htm
5.宠物连连看3.1宠物连连看3.1,宠物连连看的最新版本。在功能上有了不少的升级和改变,难易程度上也做了更合适的修改。使你玩起来的时候不用那么伤脑筋了!玩友们来吧,体验新版连连看! 游戏目标 在有限的时间里,用我们智慧消除相连卡片,通过9关卡获得最终的胜利 如何开始 ...https://www.doyo.cn/flash/game/526999
6.连连看3.1原版H5,7k7k连连看3.1原版H5游戏益智小游戏宠物连连看3.1 宠物连连看特别版 宠物连连看3 宠物连连看3.1无敌版 宠物连连看豪华版 宠物连连看豪华中文版 宠物连连看3.0 宠物连连看ipad版 宠物连连看2011版 宠物连连看经典版 宠物连连看2012 宠物连连看3.1修改版 宠物连连看3 宠物连连看卡通版 天天宠物连连看 展开相关...https://m.7k7k.com/flash/204517.htm
7.宠物连连看宠物连连看安卓版下载宠物连连看游戏推荐《宠物连连看》是一款有趣的消除类休闲游戏,关卡丰富画风精简可爱,点击两个相同的两个小动物即可将它们消除,在规定时间内将游戏中的动物消除完即可通关。关卡内还有炸弹、洗牌和提示等道具帮助你更好地完成挑战,感兴趣的小伙伴快来挑战一下吧~ 展开 详细信息 ...https://a.4399.cn/game-id-256626.html
8.宠物连连看2.5版小游戏宠物连连看2.5版在线玩《宠物连连看2.5版》是2.0版的升级版本。加入了空格键暂停游戏的功能,画面有所调整,修正了到6关时程序不能继续的bug,游戏中的难度有所降低。 操作方法:鼠标操作,将图案相同的两张图片用三跟以内的直线连在一起消除。 类型:宠物宠物连连看益智经典连连看|大小:243K ...http://www.43999yx.com/yizhi/9454_play.htm
9.连连看3.1连连看3.1原版连连看小游戏大全连连看小游戏大全提供连连看3.1,连连看3.1原版,宠物连连看3.1,宠物连连看3.1无敌版,宠物连连看2.5,宠物连连看2.6,宠物连连看3.0,宠物连连看单机版,连连看单机版下载,宠物连连看特别版等宠物连连看在线玩下载。http://lianliankan.973.com/
1.宠物连连看v1.1.0:享受乐趣,激发智慧,开启全新宠物世界它们通过简单易懂的规则、丰富多彩的玩法,能够让玩家在繁忙的生活中找到放松心情的乐趣。而在这其中,《宠物连连看v1.1.0》无疑是一款脱颖而出的佳作,凭借其可爱的宠物元素和挑战性十足的关卡设计,迅速赢得了玩家们的喜爱。 作为经典连连看系列的最新版本,《宠物连连看v1.1.0》不仅保持了原有玩法的精髓,还增加了不...http://m.efindyou.com/rjinfo/5.html
2.宠物连连看2011《宠物连连看2011》是由4399运营的一款休闲类网页游戏。发行于2011年12月13日。 中文名 宠物连连看2011 类型 休闲 大小 224KB 日期 2011/12/13 目 录 1游戏简介 2游戏介绍 3操作指南 4如何开始 5游戏目标 1游戏简介 编辑 游戏名称:宠物连连看2011 https://baike.sogou.com/v69060947.htm
3.宠物连连看3.1原版下载宠物连连看3.1原版下载4399宠物连连看3.1原版是一款非常好玩的休闲消除益智游戏,游戏精致的用户界面,4399宠物连连看3.1原版带给你很多最强最棒的挑战,可以为你提供不同的版本模式,你可以通过简单的操作和独特的战斗方式体验各种游戏,还可以为你提供大量的关卡体验。还有很多有趣的挑战! https://www.dadighost.com/android/138391.html
4.安卓连连看单机版下载手机连连看小游戏大全经典的安卓手机连连看游戏想必大多数玩家们都接触过,界面清新简洁,操作简单,老少皆宜,适合茶余饭后玩的小游戏,而且这类游戏题材多种多样,让你玩不腻,难怪腾讯新出的天天爱消除,天天连萌会这么火爆了,此次本站为您提供最新最好玩的手机连连看游戏下载,你可以下载试玩一下,好玩的话可以推荐给朋友们哦。点击...https://m.qqtn.com/k/azllkyx
5.宠物连连看3.1无敌?宠物连连看3.1无敌版的操作方法各位老铁们,大家好,今天由我来为大家分享宠物连连看3.1无敌,以及宠物连连看3.1无敌版的操作方法的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的https://si84.com/news/xydt/14045.html
6.4399的恐怖游戏排行榜,4399小游戏大全1.宠物连连看2. 2.宠物连连看 3.黄金矿工中文 4.拳皇2000 5. XEVOZ变种战士 6.魔塔~V1.1 7.街机三国志FL 8.特种任务 9.上古神器之二 10.超级索尼科 11.灵剑封魔录 12.新冒险岛 13.格斗七龙珠 14.新合金弹头 15.街头霸王II 16.无敌三国志 http://www.777au.com/shouyou/a7526411.html
7.宠物公司热点话题热门搜索词19 宠物狗品种 415 20 宠物连连看2011 406 21 宠物殡葬 406 22 桌面宠物 401 23 宠物兔 400 24 造梦西游4宠物在哪抓 395 25 宠物连连看卡哇伊版 395 26 宠物连连看跳关版 388 27 宠物医生 387 28 宠物名字 387 29 qq宠物 376 30 宠物图片 350 31 宠物小精灵之庭树 346 32 宠物连连看2.5版 338 33 宠...https://www.0797cx.cn/page37?article_id=56716
8.4399宠物连连看2.5原版本4399宠物连连看2.5原版下载...4399宠物连连看2.5原版本-4399宠物连连看2.5原版下载...,相比单纯的测雨雷达,天气雷达不仅能测雨,还能时刻关注大气运动情况,精准捕捉强对流天气过程,包括短时强降水、雷暴大风、冰雹和龙卷等强致灾性天气。尤其是0至2小时的强对流临近预报中,天气雷达系统能够对强对流http://down.bypos.net/mdk20240902/ocflwyb.aspx
9.宠物连连消普通下载宠物连连消下载免费无广告v1.7.0宠物连连消免费版介绍宠物连连消每个游戏关卡都有不同类型的挑战和困难。你可以选择独自挑战,游戏操作非常简单,只要你成功地完成了所有任务,你就能为自己获得丰厚的红包奖励。大家能够轻松的体验消除解压带来的趣味乐趣,欢乐的挑战模式任你尝试。 游戏特色 1、从低难度到高难度,你可以逐渐成为一名持续观看的专家。 2、...https://www.7230.com/d667082