2048上下键没有作用,怎么回事?

//函数定义键盘移动
function moveLeft(){
    //判断移动条件
    if(!canMoveLeft(board))
        return false;

    //moveLeft 有空间可以移动
    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 && noBlockHorizontal(i,k,j,board)){
                        //move
                        showMoveAnimation(i,j,i,k);
                        board[i][k]=board[i][j];
                        board[i][j]=0;
                        continue;
                    }
                    else if(board[i][k]==board[i][j]&& noBlockHorizontal(i,k,j,board)){
                        //move显示动画
                        showMoveAnimation(i,j,i,k);
                        //add一个数字
                        board[i][k]+=board[i][j];
                        board[i][j]=0;

                        continue;        
                }    
            }
        }
    }
    //设置移动视图时间
    setTimeout("updateBoardView()",200);    
    return true;
}

//函数定义键盘移动
function moveRight(){
    //判断移动条件
    if(!canMoveRight(board))
        return false;

    //moveRight 有空间可以移动
    for(var i=0;i<4;i++)
        for(var j=2;j>=0;j--){
            if(board[i][j]!=0){

                //与移动方向的数字相同
                for(var k=3;k>j;k--){
                    if(board[i][k]==0 && noBlockHorizontal(i,j,k,board)){
                        //move
                        showMoveAnimation(i,j,i,k);
                        board[i][k]=board[i][j];
                        board[i][j]=0;
                        continue;
                    }
                    else if(board[i][k]==board[i][j]&& noBlockHorizontal(i,j,k,board)){
                        //move显示动画
                        showMoveAnimation(i,j,i,k);
                        //add一个数字
                        board[i][k]*=2;
                        board[i][j]=0;

                        continue;        
                }    
            }
        }
    }
    //设置移动视图时间
    setTimeout("updateBoardView()",200);    
    return true;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这下面的实现不了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//函数定义键盘移动
function moveUp(){
    //判断移动条件
    if(!canMoveUp(board))
        return false;

    //moveUp有空间可以移动
    for(var j=0;j<4;j++)
        for(var i=1;i<4;i++){
            if(board[i][j]!=0){

                //与移动方向的数字相同
                for(var k=0;k<i;k++){
                    if(board[k][j]==0 && noBlockHorizontal(j,k,i,board)){
                        //move
                        showMoveAnimation(i,j,k,j);
                        board[k][j]=board[i][j];
                        board[i][j]=0;
                        continue;
                    }
                    else if(board[k][j]==board[i][j]&& noBlockHorizontal(j,k,i,board)){
                        //move显示动画
                        showMoveAnimation(i,j,k,j);
                        //add一个数字
                        board[k][j]+=board[i][j];
                        board[i][j]=0;

                        continue;        
                }    
            }
        }
    }
    //设置移动视图时间
    setTimeout("updateBoardView()",200);    
    return true;
}

//函数定义键盘移动
function moveDown(){
    //判断移动条件
    if(!canMoveDown(board))
        return false;

    //moveDown有空间可以移动
    for(var j=0;j<4;j++)
        for(var i=2;i>=0;i--){
            if(board[i][j]!=0){

                //与移动方向的数字相同
                for(var k=3;k>i;k--){
                    if(board[k][j]==0 && noBlockHorizontal(j,k,i,board)){
                        //move
                        showMoveAnimation(i,j,k,j);
                        board[k][j]=board[i][j];
                        board[i][j]=0;
                        continue;
                    }
                    else if(board[k][j]==board[i][j]&& noBlockHorizontal(j,k,i,board)){
                        //move显示动画
                        showMoveAnimation(i,j,k,j);
                        //add一个数字
                        board[k][j]+=board[i][j];
                        board[i][j]=0;

                        continue;        
                }    
            }
        }
    }
    //设置移动视图时间
    setTimeout("updateBoardView()",200);    
    return true;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这里面是否有错~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

//函数定义键盘可以移动时矩形
function canMoveLeft(board){
    for(var i=0;i<4;i++)
        for(var j=1;j<4;j++)
            if(board[i][j]!=0)
                if(board[i][j-1]==0 || board[i][j-1]==board[i][j])
                    return true;
    return false;            
}

//函数定义键盘可以移动时矩形
function canMoveRight(board){
    for(var i=0;i<4;i++)
        for(var j=2;j>=0;j--)
            if(board[i][j]!=0)
                if(board[i][j+1]==0 || board[i][j+1]==board[i][j])
                    return true;
    return false;            
}

//函数定义键盘可以移动时矩形
function canMoveUp(board){
    for(var j=0;j<4;j++)
        for(var i=1;i<4;i++)
            if(board[i][j]!=0)
                if(borad[i-1][j]==0 || board[i-1][j]==board[i][j])
                    return true;
    return false;            
}

//函数定义键盘可以移动时矩形
function canMoveDown(board){
    for(var j=0;j<4;j++)
        for(var i=2;i>=0;i--)
            if(board[i][j]!=0)
                if(borad[i+1][j]==0 || board[i+1][j]==board[i][j])
                    return true;
    return false;            
}

//函数定义左右阻挡物动画效果
function noBlockHorizontal(row,col1,col2,board){
    for(var i=col1+1 ; i<col2;i++)
        if(board[row][i]!=0)
            return false;
    return true ;
}

//函数定义上下阻挡物动画效果
function noBlockVertical(col,row1,row2,board){
    for(var i=row1+1 ; i<row2;i++)
        if(board[i][col]!=0)
            return false;
    return true ;
}

Sumo_dream
浏览 1571回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript