我试图用随机的游戏碎片(图像)填充一个游戏板(8乘8),但并不是整个游戏板都填满了。有些将是空的。为此,我在板上随机生成x,y坐标,并为其分配一个随机数。由于fillBoard是模块中的私有函数,我将其复制到copyBoard,这是公共函数。
其想法是随机生成一个x,y坐标,并将其放入数组[x],数组[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;
}