我正在尝试用随机游戏块(图像)填充游戏板(8 x 8),但不是整个板都被填满。有些会是空的。为此,我在板上随机生成 x,y 坐标并为其分配一个随机数。由于fillBoard是模块中的私有函数,我将它复制到copyBoard,这是一个公共函数。
这个想法是随机生成一个 x,y 坐标并将其放入 array[x]、array[y] 中。我在复制数组时遇到了麻烦,因为并不是所有的都被定义了。我想知道你是怎么做到的?
这是我到目前为止所得到的。它显示错误,因为 splice() 不能用于未定义的变量。
function fillBoard(){
var x, y;
monsters=[]; //empty array
x = Math.floor(Math.random()*cols);
y = Math.floor(Math.random()*rows);
monsters[x] = []; /* making x variable an array */
monsters[x][y] = Math.floor(Math.random() * numMonsterTypes);
}
function copyBoard() {
var copy = [],
x;
for (x = 0; x < cols; x++) {
if(monsters[x]){
copy[x] = monsters[x].slice(0); //slice(array) -> returns the selected elements in an array
};
};
return copy;
}