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