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.宠物连连看手机版免费下载宠物连连看经典版下载安装...宠物连连看是非常好玩的休闲消磨时间的游戏,因其可爱的宠物主题和刺激的连连消除玩法而备受玩家喜爱,简单易懂的规则和丰富多样的关卡设计,为玩家带来了无尽的乐趣和挑战。随着游戏的爆火,厂商也是做出了各个版本,于是小编就给大家带来了宠物连连看版本大全,里面有宠物连连看经典版、宠物连连看3d版、宠物连连看单机版等等,对...https://www.ddooo.com/zt/cwllk.htm
2.宠物连连看宠物连连看安卓下载攻略宠物连连看是一款经典的休闲免费连连看游戏,简约的画风,画风中的萌宠,给你带来不一般的体验,快来挑战一下吧! 游戏玩法: 1、采用经典连连看玩法,好玩不腻。 2、匹配两个相同的动物一键消除。 3、在规定的时间内,消除所有的动物,就能进入下一个关卡。 4、使用合适的道具,更有利于你通关哦!...展开 ...https://game.xiaomi.com/game/62367711
3.连连看下载连连看合集下载超萌果蔬宠物连连看 中文 更新时间:2016-03-31 超萌果蔬宠物连连看是一款连连看休闲游戏,游戏以可爱的动物蔬果为主题,采用经典的连连看玩法,加上特有的随机事件,给游戏带来了不一样的游戏感受。连连看的游戏有很多,都具有属于自己的独特特色,这款以蔬果宠物为主题的连连看又时候能够打动你呢?喜欢的小伙伴 点击下载 ...http://www.downcc.com/p/h1_K2376_P3.html
4.大家知不知道有什么好玩的小游戏,最好是益智类的?汽车问答益智类点击Top420 宠物连连看2.5版 宠物连连看 黄金矿工中文版 宠物连连看2.6 果蔬连连看 红孩儿连连看 宠物连连看3.0版 新淘金者 石头连连看 紫枫淘金者2.1 新上海麻将 厨房连连看 宠物连连看特别版 新麻雀连连看 花花连连看 超级方块 五子连珠 大话西游2 宠物连连看3.1 三国麻将风云修正版 全新连连看 喜羊羊与灰太狼消...https://m.58che.com/wenda/1366824.html
5.kuaiwan快玩快玩游戏快玩网页游戏最齐全的网页游戏大全快玩网页游戏是最齐全的网页游戏大全,这里有最好玩的网页游戏,以及最新网页游戏开服信息,凡人修真2,神曲,王者召唤,神魔仙界,武林叁,醉西游,大侠传,神仙道,龙将,热血海贼王,斗破苍穹2,侠武英雄传,英雄远征,英雄王座,梦幻飞仙,百炼成仙,梦幻修仙,http://www.kuaiwan.com/
1.宠物连连看4.1免费中字高清视频《宠物连连看4.1》剧情:一窥邪教领袖的邪教独门秘籍,看他们如何获得无条件的教主爱戴、无穷尽的养成奉献,以及控制他人身心和灵魂的指南能力。邪教http://www.yjnuantong.com/vodtype/1101/838a999076.asp
2.宠物连连看正版宠物连连看正版 导读宠物连连看正版是一款经典的连连看游戏,在游戏中玩家需要通过连接两个相同图案的方块来消除它们。这款游戏具有多种模式和关卡,适合不同年... 宠物连连看正版是一款经典的连连看游戏,在游戏中玩家需要通过连接两个相同图案的方块来消除它们。这款游戏具有多种模式和关卡,适合不同年龄段的玩家挑战。https://news.mogufr.com/yxzn/202411/70112.html
3.宠物连连看3.1小游戏准备页面说明:宠物连连看3.1.宠物连连看地最郝版本.最郝版本中增加L以下功能:1.空格键暂停。2.界面更新。3.修正L到6关时程序不能继续地bug。4.难度降低。此款连连看小游戏在难易程度上做L修正.相对于其他版本地连连看简单L很多.使你玩起来地时候不用那么伤脑筋L!!!操作的方法:Flash小游戏中使用鼠标控制。考验地是各位...https://www.7k7k7.com.cn/games/17817/
4.宠物连连看3.1无敌?宠物连连看3.1无敌版的操作方法各位老铁们,大家好,今天由我来为大家分享宠物连连看3.1无敌,以及宠物连连看3.1无敌版的操作方法的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧! 宠物连连看3.1无敌版的操作方法 ...https://si84.com/news/xydt/14045.html
5.小游戏连连看果蔬连连看游戏介绍游戏基本介绍 中文名 :果蔬连连看 游戏类型 :连连看小游戏 所属系列 :益智小游戏 地区 :中国 游戏画面 :2D 游戏大小 :295K 背景设定,操作指南,如何开始,游戏操作,游戏目标,游戏DLC, 背景设定 喜欢“果蔬连连看”和“果蔬连连看”适合的群体比宠物连连看、水晶连连看、麻将连连看等任何一个连连看小游戏的分类都要广,其中...https://www.taofang114.com/post/19304.html
6.宠物连连看免费, 休闲, 好玩, 萌萌哒。 宠物连连看是一款以宠物为主题的匹配消除类的休闲游戏,只要将图案相同的宠物用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。 Nouveautés 10 nov. 2015 Version 1.0.2 https://apps.apple.com/ci/app/%E5%AE%A0%E7%89%A9%E8%BF%9E%E8%BF%9E%E7%9C%8B-%E5%85%8D%E8%B4%B9-%E4%BC%91%E9%97%B2-%E5%A5%BD%E7%8E%A9-%E8%90%8C%E8%90%8C%E5%93%92/id1042514594?platform=iphone
7.《宠物连连看v4.1》电影在线观看全集伦理片宠物连连看v4.10.0类型:伦理 地区:日本 年份:2024 主演:亨利·戈尔丁 安德鲁·浩二 导演:冢本晋也 更新:2024-09-12简介: 女醫生夕月有個交往對象政人為了幫助嗜酒又沉迷於賭博的政人夕月建議政人來醫院做清潔工然而政人卻在背地裡與護理師偷吃為了報復政人夕月居然把腦筋動到了政 详情 ...http://www.hgqzysg.com/cultureorder/3471388.html
8.连连看类手游排行榜应用宝连连看游戏大全应用宝连连看类手游排行榜由点点数据提供。本次排行榜包含了:连连看、水果连连看单机游戏、连连看大冒险、宠物连连看单机游戏、开心消消乐、泡泡射手、宾果消消消、罗斯方块、成语消消闯关、祖玛等十大连连看类手游排行榜 1排名 连连看 连连看规则简单容易上手,游戏速度节奏快,画面清晰可爱,游戏主要有三种模式:传统模式、冒险...http://vip.diandian.com/phb/505/7-1.html
9.死亡笔记L换装,死亡笔记L换装小游戏,360游娱司简介:死亡笔记中的L,qq的样子,打破他一贯的形象,为他穿上各式搞怪服装,哈哈,表情超可爱哦~鼠标点击左上角的衣服、裤子、鞋子等。操作方法:鼠标单击换装打扮! 复制 u7u9小游戏 操作指南 如何开始 游戏目标 鼠标单击换装打扮! 精选专题 森林冰火人 双人 https://xiaoyouxi.360.cn/detail?id=asMaZoE7TFKsQU
10.zzllk多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持新鲜感。使用新颖的连击积分规则,使游戏玩家在体会连击的快感后,同时对自己的游戏速度,更有挑战性和追求极速的欲望。 依托开放平台,社交游戏“宠物连连看”的应用得到了快速的普及。目前已经成为互联网上最流行的社交游戏之一。https://baike.sogou.com/v10653508.htm
11.android连连看课设报告,宠物连连看课程设计报告本文档详细介绍了宠物连连看游戏的设计与实现过程,包括游戏界面、图案显示、消除逻辑、游戏结束条件、开发工具的选择以及游戏流程。使用了VS2008作为开发环境,EasyX图形库辅助图形编程,通过二维数组表示游戏面板。游戏目标是在限定时间内消除所有格子,通过判断鼠标点击的两个图案是否能通过不超过三根直线相连来消除。测试环节展...https://blog.csdn.net/weixin_30713183/article/details/117555700
12.python实现连连看辅助(图像识别)pythonself.wdname = r'宠物连连看经典版2,宠物连连看经典版2小游戏,4399小游戏 www.4399.com - Google Chrome' # self.wdname = r'main.swf - PotPlayer' self.image_list = {} self.m = PyMouse() def find_game_wd(self,wdname): # 取得窗口句柄 hdwd = win32gui.FindWindow(0,wdname) # 设置为...https://www.jb51.net/article/165588.htm