ゲーム ボード (8 x 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;
}