问答详情
源自:2-2 页面初始化过程分析

随机位置,这样可好?

var can_use_board=[];


//随机生成一个数字

function generateOneNumber(){

if(nospace(board)){

return false;

//随机位置

        var rand=Math.floor(Math.random()*can_use_board.length)

        var randx=rand[0];

        var randy=rand[1];

//随机数字

//随机位置显示随机数

}

else{

return true;

}  

}

//判断盘面是否有空格

function nospace(board){

for(var i=0;i<4;i++)

for(var j=0;j<4;j++){

if(board[i][j]==0){

can_use_board+=[i,j];

}

else{

continue;

}

}

if(can_use_board==null){

return true;

}

else{

return false;

}

}


提问者:雨菲玥玥 2016-06-12 23:55

个回答

  • 湛瞳
    2016-09-01 11:42:03

    var rand=Math.floor(Math.random()*can_use_board.length)

    这句话不是应该生成一个随机数吗,后面的rand[0]跟rand[1]是哪来的呢

  • tkkkk
    2016-06-15 22:49:19

    function onemoreSpace(board){

    var spaceCell = new Array();

    var k = 0;

    for (var i = 0; i < 4; i++) {

    for (var j = 0; j <4 ; j++) {

    if (0==board[i][j]) {

    spaceCell[k++] = i*4+j;

    }

    }

    }


    return 0!=spaceCell.length ? spaceCell : false;

    }


    function randOneNum(){

    if( voidCell = onemoreSpace(board))

    {

    // 在可用空间中随机选一个

    var randWhere = Math.floor(Math.random() * voidCell.length);

    // 随机生成2或4

    var randNum   = Math.random() < 0.5? 2 : 4;


    var x = parseInt(voidCell[randWhere]/4);

    var y = voidCell[randWhere]%4;

    board [x][y] = randNum;

    }

    }

    我是这样写的 亲测可用!