임의의 게임 조각 (이미지)으로 게임 보드 (8x8)를 채우려하고 있지만 전체 보드가 채워지지 않았습니다. 일부는 비어 있습니다. 그렇게하기 위해, 보드에서 x, y 좌표를 무작위로 생성하고 난수를 할당하고 있습니다. 필 보딩 (fillBoard)은 모듈의 개인 함수이기 때문에 공용 함수 인 copyBoard에 복사합니다.slice()를 사용하여 배열 배열을 복사하는 방법
아이디어는 무작위로 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;
}
정말 당신이 저장하는 몬스터의 종류에 따라 달라집니다. – karim79
아마 당신이 해결하려고하는 실제 문제를 묘사한다면 우리는 적절한 해결책을 더 잘 도울 수있을 것입니다. 지금 당장은 코드를 보여주는 것이별로 의미가 없으므로 실제로하려는 것을 알 필요가 있다고 생각합니다. – jfriend00