下你所需,载你所想!
汇集开发技术源码资料

连连看通杀算法思路,大漠找图辅助获取方块矩阵信息

:1.826MB :1 :2020-02-01 17:53:15

部分简介

如果用在其他的连连看上或者切换难度,要修改一下临时宝石数组中的维数,即横向和纵向的图标个数

1.用于新游戏前,需要将游戏中的所有图标截图并保存到“宝石类型”文件夹中
2.对于不是7*12或6*12型的图标矩阵,需要打开源码,将相应位置维数修改才可使用
3.获取图形坐标时请保持游戏窗口在最前端,且不被遮挡。
4.点击 获取宝石坐标 前,必须确保已经输入了左上角方块的顶点坐标!
点击 获取宝石坐标 前,必须确保已经输入了左上角方块的顶点坐标!
点击 获取宝石坐标 前,必须确保已经输入了左上角方块的顶点坐标!

屏幕截图,获取在场的方块矩阵信息,再筛选相同的两个图标,计算两者能否相连,如果能连就点击两方块的坐标,并在方块矩阵中删去这两个元素,循环执行到所有元素都被删除。

最复杂的是计算能否相连,代码的实现大约用了五百行。

重定义数组 (可消除, 假, 0) ' 初始化
.计次循环首 (横向图标个数 × 竖向图标个数, 容器1) ' 原始矩阵中有多少元素就循环多少次
本次比较方块 = 剩余方块 [容器1] ' 剩余方块 [容器1]为本次比较的方块
.如果真 (本次比较方块 = #常量2)
到循环尾 () ' 该位置已经消去则跳出循环
.如果真结束
横1 = 取横坐标 (容器1, 横向图标个数)
竖1 = 取纵坐标 (容器1, 横向图标个数)
可连 = 假
.变量循环首 (容器1 + 1, 横向图标个数 × 竖向图标个数, 1, 容器2) ' 依次将所有场上剩余方块进行比较,比较次数记录在容器2中。
.如果真 (本次比较方块 = 剩余方块 [容器2]) ' 找到了两个图标相同的方块的话,判断是否可连
横2 = 取横坐标 (容器2, 横向图标个数)
竖2 = 取纵坐标 (容器2, 横向图标个数) ' 获得第二个比较的方块坐标
.判断开始 (横1 = 横2) ' 两个图标在同一列的情况
.如果 (竖2 - 竖1 = 1) ' 两个图标竖着靠在一起,则必可连
可连 = 真
.否则
.变量循环首 (竖1 + 1, 竖2 - 1, 1, 容器3) ' 两个图标不靠在一起,如果中间的图标(竖向)全被消去,也可连
.如果 (剩余方块 [横1 + (容器3 - 1) × 横向图标个数] ≠ #常量2) ' 一旦中间有没有消去的方块,直接跳出循环,查看是否符合其他条件
可连 = 假 ' 暂时判断为假
跳出循环 ()
.否则
可连 = 真
.如果结束

.变量循环尾 ()
.如果真 (可连 = 假) ' 两个图标在同一列,不靠在一起,中间还有图标没消去
.如果 (横1 = 1) ' 两个图标都在第一列,必可通过上面的空白相连
可连 = 真
.否则
.变量循环首 (横1 - 1, 1, -1, 容器4) ' 两个图标不在第一列的情况
.如果 (剩余方块 [容器4 + (竖1 - 1) × 横向图标个数] ≠ #常量2 或 剩余方块 [容器4 + (竖2 - 1) × 横向图标个数] ≠ #常量2)
' 如果两个图标左边第一个方块(横向)没有消去,记为不可连(暂时),如果旁边的方块有消去的,跳转到下面的变量循环首
可连 = 假 ' 暂时判断为假-------这里应该后面还会有其他判断
跳出循环 ()
.否则
.变量循环首 (竖1 + 1, 竖2 - 1, 1, 容器3) ' 两个图标左边(横向)方块有消去的情况
.如果 (剩余方块 [容器4 + (容器3 - 1) × 横向图标个数] ≠ #常量2)
可连 = 假 ' 暂时判断为假
跳出循环 ()
.否则
可连 = 真 ' 两个图标竖向的方块全部消去了的话,必可连
.如果结束

.变量循环尾 ()
' 两个图标在同一列但不在第一列,左边(横向)方块有消去,竖向的方块没有全部消去。

连连看通杀算法思路,大漠找图辅助获取方块矩阵信息

热门推荐

相关文章