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....连连看全集小游戏大全,4399旧版连连看全集小游戏全集,4399小游戏4399连连看全集小游戏大全收录了国内外果蔬连连看小游戏,在线小游戏连连看,连连看小游戏下载,爱情连连看,游戏连连看3.1,阿达连连看,好玩就拉朋友们一起来玩吧!https://www.4399.com/special/old_8.htm
2.宠物连连看2.5版小游戏宠物连连看2.5版在线玩《宠物连连看2.5版》是2.0版的升级版本。加入了空格键暂停游戏的功能,画面有所调整,修正了到6关时程序不能继续的bug,游戏中的难度有所降低。 操作方法:鼠标操作,将图案相同的两张图片用三跟以内的直线连在一起消除。 类型:宠物宠物连连看益智经典连连看|大小:243K ...http://www.43999yx.com/yizhi/9454_play.htm
3.宠物连连看3.1宠物连连看3.1,宠物连连看的最新版本。在功能上有了不少的升级和改变,难易程度上也做了更合适的修改。使你玩起来的时候不用那么伤脑筋了!玩友们来吧,体验新版连连看! 游戏目标 在有限的时间里,用我们智慧消除相连卡片,通过9关卡获得最终的胜利 如何开始 ...https://www.doyo.cn/flash/game/526999
4.宠物连连看小游戏,在线玩,4399小游戏4399迷你世界 赛尔号 游戏玩法 (本游戏合适16岁以上用户) 操作指南 鼠标操作 展开查看更多 如何开始 游戏加载完毕点击画面中间的图像即进入游戏 游戏目标 在有限的时间里,消除所有的图标,通过9个关卡获得最终的胜利。 游戏介绍 【宠物连连看勋章版】大名鼎鼎的“连连看”,别告诉我你不知道哦!这回,在flash中...http://www.4399.net/flash/776_1.htm?1024
5.宠物连连看下载宠物连连看安卓版下载宠物连连看 1万+ 下载 57.49M 下载试玩 好游戏,一起玩 更多精品游戏尽在4399游戏盒 简介 论坛 写评论 发布 一般 您还可以输入300个字 评论详情 × 该游戏礼包只能在游戏盒领取的哦 取消 确认领取 × 马上去4399游戏盒付费,开始游戏吧 取消 确认 打开游戏盒查看详情 ? 如已安装游戏盒app,点击[立即打开]自动...https://a.4399.cn/mobile/256626.html
6.4399连连看v1.0下载益智游戏4399连连看包括以下连连看游戏宠物连连看3.0,宠物连连看2.6,QQ连连看,厨房连连看等众多连连看游戏。 2.4399连连看是一款下载到本地就可以直接游戏的软件: 4399连连看不需要连接到网络就可以在本地直接游戏的小游戏软件。 3.4399连连看是一款免费、安全、绿色的小游戏软件: ...https://www.crsky.com/soft/16187.html
7.推荐一下4399的宠物连连看3.1无敌版,我的...来自几回杂推荐一下4399的宠物连连看3.1无敌版,我的解压神器。 ?收藏 转发 评论 ?3 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候...ü 简介: 不笑也行 更多a 微关系 她的关注(275) 忘词大王林小喜 疯癫的唐僧 Jarow- 可爱收藏家_ 她的粉丝(371) Jarow...https://weibo.com/3664219850/GalpXsn8t
8.游戏试玩宠物连连看宠物连连看02:54宠物连连看:将相同的动物清楚,完成挑战闯关吧!5649是老灵魂吖 00:40变形第二天活动攻略速学!5260叹愁(西普BOSS克星) 02:34末日狂潮?极限存活!生存党必玩的射击游戏,攻防拆家,多人同服3.9w空折枝枝枝 03:00新版本之子SG12到底能有多强,萤火突击SG12改枪教学。5.1w牛牛游戏解说 ...https://www.4399youpai.com/video/4589296.html
9.llk宠物连连看llk宠物连连看小游戏llk宠物连连看提供llk宠物连连看小游戏,llk宠物连连看4399,llk宠物连连看下载,llk宠物连连看单机版,llk宠物连连看攻略,llk宠物连连看在线玩,单机llk宠物连连看下载,llk宠物连连看小游戏大全。https://m.973.com/68897
10.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
1.宠物连连看3.1原版下载宠物连连看3.1原版下载4399宠物连连看3.1原版是一款非常好玩的休闲消除益智游戏,游戏精致的用户界面,4399宠物连连看3.1原版带给你很多最强最棒的挑战,可以为你提供不同的版本模式,你可以通过简单的操作和独特的战斗方式体验各种游戏,还可以为你提供大量的关卡体验。还有很多有趣的挑战! https://www.dadighost.com/android/138391.html
2.4399游戏宠物连连看,唤醒你的童年记忆,重温经典游戏乐趣在众多经典的游戏中,4399游戏宠物连连看无疑是一颗璀璨的明珠,这款游戏以其独特的玩法和可爱的宠物形象,吸引了无数玩家的目光,就让我们一起走进这个充满乐趣和挑战的世界,感受一下宠物连连看的魅力所在。 一、游戏概述 4399游戏宠物连连看是一款以宠物为主题的连连看游戏,玩家需要在限定的时间内,通过点击相同的宠物图片...http://olocos.com.cn/zxgl/31354.html
3.4399游戏宠物连连看,经典益智游戏的乐趣与策略在互联网游戏世界中,益智类小游戏因其简单易上手、趣味性强等特点,深受广大玩家的喜爱,4399游戏平台的“宠物连连看”游戏以其独特的玩法和可爱的宠物形象,吸引了无数玩家的目光,本文将详细介绍这款游戏的玩法、特点以及其中蕴含的益智策略。 一、游戏概述 http://m.ntjyl.cn/glzx/42519.html
4.4399宠物连连看2.5原版本4399宠物连连看2.5原版下载...4399宠物连连看2.5原版本-4399宠物连连看2.5原版下载...,相比单纯的测雨雷达,天气雷达不仅能测雨,还能时刻关注大气运动情况,精准捕捉强对流天气过程,包括短时强降水、雷暴大风、冰雹和龙卷等强致灾性天气。尤其是0至2小时的强对流临近预报中,天气雷达系统能够对强对流http://down.bypos.net/mdk20240902/ocflwyb.aspx
5.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
6.宠物连连看3.1无敌?宠物连连看3.1无敌版的操作方法植物大战僵尸无敌版8.拳皇wing1.59.4399摩尔庄园10.卡布西游11.神兵传奇无敌版12.二战前线2无敌版13.宠物连连看2.5版14.愤怒的小鸟15.4399功夫派16.铠甲勇士激斗传炎龙17.4399开心农场18.奥特曼大战僵尸0.619.果蔬连连看20.摩尔勇士21.盒子世界22.大嘴怪冒险23.屁王兄弟24.炎龙传说3炽凤25.4399小花仙26.美食大战老鼠27...https://si84.com/news/xydt/14045.html
7.新手入门HTML5游戏源码(蘑菇与熊)HTML5游戏开发是现代网页应用领域的一个重要组成部分,它利用HTML5、CSS3和JavaScript等技术,为用户提供在浏览器上直接运行的游戏体验。本资源"新手入门HTML5游戏源码(蘑菇与熊)"是一个专为初学者设计的学习项目,旨在帮助你逐步了解并掌握HTML5游戏开发的基础知识。 我们要明白HTML5是Web标准的核心部分,提供了许多新的...https://download.csdn.net/download/ai_ti/4400349
8.4399小游戏排行榜4999小游戏大全排行榜4399小游戏排行榜为你提供热门好玩的4999小游戏大全排行榜,包括宠物连连看,灌篮高手,挖金矿,超级方块,掘金勇士等。找优质的4399小游戏免费游戏排行前十名,就到最笨下载网!榜单更新时间:2023-05-10 1 神奇宝贝进化 166 MB | 角色扮演 | 立即下载 神奇宝贝进化是一款冒险题材的手游,玩家可以在其中选择不同的...https://www.zuiben.com/paihang/4399xyxpxb/