
that.getIsSuccess = function (list) {
for (let i = 0; i < 2; i++) {
for (let j = 0; j < 3; j++) {
//首先看一下,上下左右边缘是否都 是mid
let map = list[i * 3 + j];
//上
if (i === 1) {
if (map[defines.DirectionMap.UP] !== defines.PuzzleLineValue.MID) {
//只要不等于 中间 就直接返回 false
return false;
}
}
//下
if (i === 0) {
if (map[defines.DirectionMap.DOWN] !== defines.PuzzleLineValue.MID) {
//只要不等于 中间 就直接返回 false
return false;
}
}
//左
if (j === 0) {
if (map[defines.DirectionMap.LEFT] !== defines.PuzzleLineValue.MID) {
//只要不等于 中间 就直接返回 false
return false;
}
}
//右
if (j === 2) {
if (map[defines.DirectionMap.RIGHT] !== defines.PuzzleLineValue.MID) {
//只要不等于 中间 就直接返回 false
return false;
}
}
//然后计算中间的 左右相加 等于 0
if(j<2){
//跟创建地图的算法类似
let nextMap = list[ i * 3 + j + 1];
if(map[defines.DirectionMap.RIGHT] + nextMap[defines.DirectionMap.LEFT] !==0){
//相邻的值加起来要等于 0 知道边缘的宏定义 的三个值要相加等于0了吧。
//只在左右相加不等于 0
return false;
}
}
//上下相加等于 0
if(i < 1){
let nextMap = list[(i+1)*3+j];
if(map[defines.DirectionMap.UP] + nextMap[defines.DirectionMap.DOWN] !==0){
return false;
}
}
}
}
//所有情况都考虑到,最终得到真值。
return true;
};
站长微信:xiaomao0055
站长QQ:14496453