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.连连看小游戏,连连看小游戏大全,连连看下载,4399连连看小游戏大全4399连连看全集小游戏大全收录了国内外果蔬连连看小游戏,在线小游戏连连看,连连看小游戏下载,爱情连连看,游戏连连看3.1,阿达连连看,好玩就拉朋友们一起来玩吧!http://www.4399.net/special/8.htm
3.水果连连看游戏大全水果连连看经典版水果连连看游戏免费下载水果连连看游戏大全中为您带来了各种水果系列的连连看小游戏,支持单机和联网模式,内容非常丰富,还可以和好友在排行榜上一较高下,看谁的分数最高!游戏的关卡设计与电脑经典版的玩法整体同步,并结合了手机设备做了完美的适配。水果连连看,专为手机游戏而生!超过1000个关卡,关关精彩!不管你是菜鸟还是高手,这里都适合你!http://www.downyi.com/key/sgllk/
4.经典游戏经典单机游戏经典单机小游戏经典游戏大全7k7k经典游戏小游戏专区,收集童年经典游戏黄金矿工,连连看,泡泡堂,雪人兄弟,魂斗罗,植物大战僵尸,合金弹头,街头霸王,贪吃蛇,俄罗斯方块等众多小游戏,快叫上小伙伴一起来7k7k寻找童年的快乐吧!https://www.7k7k.com/tag/65/
5.连连看3.1连连看3.1原版连连看小游戏大全连连看小游戏大全提供连连看3.1,连连看3.1原版,宠物连连看3.1,宠物连连看3.1无敌版,宠物连连看2.5,宠物连连看2.6,宠物连连看3.0,宠物连连看单机版,连连看单机版下载,宠物连连看特别版等宠物连连看在线玩下载。http://lianliankan.973.com/
6.连连看小游戏大全44399小游戏连连看3366小游戏连连看连连看小游戏大全免费提供44399小游戏连连看,爱情连连看,3366小游戏连连看,宠物连连看3.1,宠物连连看2.5,水果连连看3.0,果蔬连连看43999,水果连连看小游戏,7k7k小游戏连连看专题,连连看小游戏等,连连看小游戏全集。https://www.45575.com/llk/
7.果蔬连连看4399原版下载果蔬连连看游戏选关版下载《果蔬连连看游戏选关版》游戏截图 游戏简介 《果蔬连连看游戏选关版》这是一款好玩又有趣的消除类手游。精致的游戏画面,可爱的果蔬造型,华丽的消除特效,全部都让人爱不释手。还有海量趣味关卡、游戏道具、游戏模式等丰富的游戏内容等着你。感兴趣的玩家赶快下载吧! http://www.962.net/azgame/209920.html
8.4399游戏花花连连看下载花花连连看4399版v1.0电脑版没有对应的IOS版,点击下载的是:花花连连看4399版电脑版内容介绍相关下载评论0 花花连连看4399版是以不同种类的花朵为主的连连看玩法的休闲游戏,游戏画面比较的丰富,花朵的种类非常的多,在玩连连看的同时还能够了解到各种各样的花卉,操作也很简单~感兴趣的朋友快来极光下载站体验吧! 4399游戏花花连连看简介 花花连连看...http://m.xz7.com/downinfo/282948.html
1.安卓连连看游戏安卓连连看游戏排行榜安卓连连看游戏下载4399安卓游戏,为您提供安卓连连看游戏排行榜,安卓连连看游戏下载。更多好玩的安卓连连看游戏,尽在4399手机游戏网。https://a.4399.cn/mobile/tag-id-22.html
2.纽扣连连看纽扣连连看-4399小游戏连连看经典单机版 柔柔 梁 Con?u pour iPad Gratuit Captures d’écran iPad iPhone Description 【游戏简介】 可能你玩过了4399小游戏中水果连连看,宠物连连等各式各样的连连看,但你应该还没看过全是纽扣的连连看吧,千万别看花了眼哦,纽扣连连操作上很简单点击两个相同图标,如果图标间的...https://apps.apple.com/cm/app/%E7%BA%BD%E6%89%A3%E8%BF%9E%E8%BF%9E%E7%9C%8B-4399%E5%B0%8F%E6%B8%B8%E6%88%8F%E8%BF%9E%E8%BF%9E%E7%9C%8B%E7%BB%8F%E5%85%B8%E5%8D%95%E6%9C%BA%E7%89%88/id1068198476
3.果蔬连连看免费经典版果蔬连连看4399全屏h5v2020绿色版果蔬连连看4399全屏h5是一款广受好评的休闲益智类电脑游戏,是一款非常经典的小游戏了,完全可以拿来消磨时间,游戏玩法和规则相信不用多说了,感兴趣的朋友快来下载试玩吧。 概括介绍 果蔬连连看是一款可以在电脑上玩的消除游戏,玩家需要将相同的两个元素连接消除,限制时间结束后所有果蔬消除完毕即可过关。果蔬连连看选关...https://www.qqtn.com/down/467987.html
4.宠物连连看3.1原版下载宠物连连看3.1原版下载3、游戏还有更多游戏乐趣等你来体验,来一场宠物农场水果之旅吧。 4399宠物连连看3.1原版游戏继承了电脑版连连看的经典模式进行创新,有五种模式带来不同的体验,操作方便简单,消磨时间的最佳选择,简单划一下屏幕。宠物连连看经典游戏中有上百个关卡,数量众多,各种精彩的战略挑战设计。https://www.dadighost.com/android/138391.html
5.用Python做一个游戏辅助脚本,完整编程思路分享获取窗口句柄,这里就是浏览器标题栏的标题了(右键-查看源代码-title,加上软件名)比如:“宠物连连看经典2,宠物连连看经典版2小游戏,4399小游戏 [www.4399.com]- GoogleChrome“。获取窗口句柄就可以开始了。 总体开发思路:截取游戏主图 —> 分割成小图 —> 对比每个小图,对比图片相识度,编号存入矩阵 —> 对...https://blog.csdn.net/ITF_001/article/details/122328788
6.4399游戏连连看,4399游戏连连看单机游戏喜欢休闲的可以玩休闲模式,喜欢刺激的可以挑战极速模式、无限模式、地狱模式和经典模式。小小地刺激你的紧张神经,给你的神经轻轻的按摩是我们的初衷!模式多、玩法多、萌物多!!快来下载吧!不一样的连连看等你来玩!小心玩上瘾哦!!! 4399游戏连连看单机版 连连看3.1原版游戏中采用的是神奇宝贝图案,玩家需要选择一对...https://www.70wn.com/dj/2850.html
7.解谜单机游戏解谜冒险游戏大全解谜冒险排行榜解谜冒险游戏下载游迅网为您提供好玩的单机游戏下载服务,这里有好玩的单机游戏下载大全中文版下载、2018年度好玩的单机游戏下载,众多好玩的单机游戏,经典单机游戏尽在游迅网单机游戏下载网。https://www.yxdown.com/danji/maoxian/
8.花花连连看4399小游戏下载花花连连看4399小游戏为玩家们带来一款非常轻松解压的一款连连看游戏,游戏的玩法简单,只需要玩家仔细的观察,把相同的花花连起来就能够消除。花花连连看4399小游戏的画面以花花为元素设计,非常的有趣好玩,喜欢这款游戏的小伙伴欢迎前来下载游玩! 大小:440KB类型:休闲解压平台: ...https://www.880sy.com/zt/hhllk/
9.jsqnkj.com/xxxr31751692/616588年轻的阿?k8经典网 82.01MB 9349好评 欧美BBBB中出BBB 魅魔白丝足交炸汁 欧美日在线观看视频 869.66MB 810好评 亚洲版的男人的天堂 午夜一级...女生下体被侵黄片 电脑小游戏4399还有什么网站 一级操逼视频 亚洲女人子宫黄色毛片 大奶子美妇被日 Chinasex中国HD麻 国产TK挠脚心网站 爱逼视频免费看...http://jsqnkj.com/xxxr31751692/616588
10.4399连连看下载4399连连看2.54399连连看是一款集合几乎所有连连看游戏的集合版本:4399连连看包括以下连连看游戏 宠物连连看3.0,宠物连连看2.6,QQ连连看,厨房连连看等众多连连看游戏 。4399连连看是一款下载到本地就可以直接游戏的软件:4399连连看不需要连接到网络就可以在本地直接游戏的小游戏软件。4399连连看下载 ...https://xiazai.zol.com.cn/detail/35/349674.shtml