牙叔教程简单易懂
我用autojs写了一个连连看app,然后我又写了一个连连看脚本,
效果展示
下面来看看连连看脚本的制作思路
采集画面原始信息
游戏区域的左上角和右下角坐标
游戏的行列的数量
格子的原始图片
调整数据结构
我把小小的格子定义为一个Cell类,然后所有属性都挂到他上面,方便调用
functionCell(row,column){this.row=row;this.column=column;this.state=Cell.state.NORMAL;this.width=0;this.height=0;this.centerX=0;this.centerY=0;this.left=0;this.top=0;this.right=0;this.bottom=0;this.canvas=null;this.number=null;this.originalImg=null;this.img=null;this.paint=paint;}
判断格子是否连通
这个是该教程的重点,网上已经有很多的方法了,大家可以博采众长,然后写出自己的脚本.
下面来看看这个脚本是怎么判断的
连通类别我分为三种
图形化展示三种连通分类
第一种:两个格子紧挨着
第二种:一个格子周围的空格和另一个格子周围的空格有交集
第三种:一个格子周围的空格集合A,
另一个格子周围的空格集合B,
集合B周围的空格集合C,
集合A和集合C有交集
几个小问题
1怎么判断格子是不是空的
Celll有一个属性originalImg,保存的是游戏刚开始格子里面的图片,
截图以后,拿当前的图片和原始图片做对比,不一样的话,就是格子就是空的
2怎么判断两个格子图片是不是一样的
我用的是多点比色,在一张图中取多个点的颜色数据,然后去另一张图中找;
能找到符合条件的多个点,就说明两张图一样.
functionisSameTwoImg(img1,img2){//在图中间找固定数量的点,然后去大图里面多点找色letcolorDataList=getColorDataList(img1);//[图片与颜色-Images](