为啥第二列的数字无法移动到第一列?

来源:3-4 交互逻辑调试

weixin_慕容2210335

2020-02-27 17:06

/*判断是否有障碍物*/
function noBlockHorizonttal(row,col1,col2,board) {
    for (var i=col1+1;i<col2;i++){
        if (board[row][i]  !=0){
            /*有障碍*/
            return false;
        }
        return true;
    }

}

第三第四列都能正常移动到第一列,但是第二列的数字在第一列为空的情况下也无法向左移动,检查到第二列的数字移动时会判断左边有障碍物,即

noBlockHorizontal

函数返回了false。


其他代码:

function moveLeft() {
        if (!canMoveLeft(board)){
            return false;
        }
    for( var i = 0 ; i < 4 ; i ++ ) {
        for (var j = 1; j < 4; j++) {
            if (board[i][j] != 0) {
                for (var k=0;k<j;k++){
                    if (board[i][k] == 0 && noBlockHorizonttal(i,k,j,board)) {
                        /*如果可以移到左边*/
                        //move
                        showMove(i,j,i,k);
                        board[i][k] = board[i][j];
                        board[i][j]=0;
                        continue;
                    }
                    else if (board[i][k] ==board[i][j] &&noBlockHorizonttal(i,k,j,board)) {
                        /*如果可以合并到左边*/
                        //move
                        showMove(i,j,i,k);
                        //add
                        board[i][k] += board[i][j];
                        board[i][j]=0;
                        continue;
                    }else{
                        alert("i="+i+",j="+j+",k="+k+",board1="+board[i][j]+"board2="+board[i][k]);
                        if(noBlockHorizonttal(i,k,j,board)){
                            alert("yes");
                        }else{
                            alert("no");
                        }
                    }
                }
            }
        }
    }
    updateBoardView();
        return true;
}


写回答 关注

2回答

  • 慕尼黑0153395
    2020-10-16 17:54:13

    感谢你的分享!我也是和你一样的问题,愣了我好久?

  • weixin_慕容2210335
    2020-02-27 17:13:14

    好迷……我把noBlockHorizonttal里的returntrue往外拉出一个括号就好了……但是测试的时候根本没有运行if里面那个return false却会返回false……

慕课网2048私人订制

慕课网这款“2048私人订制”通过大神老的讲解学习到游戏结构的开发

70013 学习 · 588 问题

查看课程

相似问题