為什么會(huì)出現(xiàn)在同一個(gè)盒子生成數(shù)字?
function generateOneNumber() {
if (nospace(board))
return false;
// 隨機(jī)一個(gè)位置
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));
}
// 隨機(jī)一個(gè)數(shù)字
var randNumber = Math.random() < 0.5 ? 2 : 4;
// 在隨機(jī)的位置顯示隨機(jī)數(shù)字
board[randx][randy] = randNumber;
showNumberWithAnimation(randx, randy, randNumber);
return true;
}
2019-12-10
你是想問這段代碼為什么要判斷同一個(gè)格子生成兩個(gè)數(shù)字的情況么?
因?yàn)殡S機(jī)數(shù)無法做判重處理,所以得通過一步if操作來進(jìn)行判斷;
如果格子有數(shù)字,那么這個(gè)位置的數(shù)組值肯定不為0;如果為0,說明這個(gè)格子還沒有數(shù)字,之后才能往這個(gè)位置寫入數(shù)字