为什么会出现在同一个盒子生成数字?

来源:2-2 页面初始化过程分析

qq_慕桂英6165387

2019-09-21 19:04

function generateOneNumber() {

if (nospace(board))

return false;



// 随机一个位置

var randx = parseInt(Math.floor(Math.random() * 4));

var randy = parseInt(Math.floor(Math.random() * 4));

while (true) {

if (board[randx][randy] == 0)

break;


randx = parseInt(Math.floor(Math.random() * 4));

randy = parseInt(Math.floor(Math.random() * 4));

}

// 随机一个数字

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

// 在随机的位置显示随机数字

board[randx][randy] = randNumber;

showNumberWithAnimation(randx, randy, randNumber);


return true;


}



写回答 关注

1回答

  • 哒哒小啦
    2019-12-10 22:00:23

    你是想问这段代码为什么要判断同一个格子生成两个数字的情况么?

    因为随机数无法做判重处理,所以得通过一步if操作来进行判断;

    如果格子有数字,那么这个位置的数组值肯定不为0;如果为0,说明这个格子还没有数字,之后才能往这个位置写入数字

慕课网2048私人订制

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

70003 学习 · 588 问题

查看课程

相似问题