지금 '지뢰 찾기'에서 일하고 있습니다. 필드를 설정했습니다.지뢰 찾기가 광산의 이웃을 확인하십시오.
나는 몇 가지 질문이 있습니다. 첫째, 광산의 수는 1에서 fieldSize-1이어야합니다.이 값이 올바른지 확신 할 수 없으므로 'minesNum'으로 선언합니다. 둘째, 광산 수가 올바르다 고 가정하면 광산의 이웃을 확인하여 9 개의 if 문이 있지만 두 번째 if 문에 'Uncaught TypeError : 속성을 설정할 수 없습니다'라는 오류 메시지가 표시됩니다. '정의되지 않음'.
나는 약 5 시간 동안 고민 중이며, 아직도 그것을 이해할 수 없다. 아무도 그것으로 나를 도울 수 있습니까? 감사합니다.
var arr=new Array(30,40);
var min=1;
var max= rows * columns;
minesNum=Math.floor(Math.random()*(max-min)+min);
for(var i=0; i<rows;i++){
for(var j=0;j<columns;j++){
arr[i][j]=0;
}
}
for (var i=0; i<=minesNum; i++){
var x = Math.floor(Math.random()*rows);
var y = Math.floor(Math.random()*columns);
if(arr[x][y]==-1){
i--;
continue;
}
arr[x][y]=-1;
}
for(var i=0;i<rows;i++){
for(var j=0;j<columns;j++){
if(arr[i][j]==-1){ //mine
continue;
}
if(this.arr[i-1][j]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i][j-1]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i+1][j]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i][j+1]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i+1][j+1]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i-1][j-1]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i-1][j+1]==-1){
arr[i][j]=arr[i][j]+1;
}
if(arr[i+1][j-1]==-1){
arr[i][j]=arr[i][j]+1;
}
}
}
내 필드의 최대 크기는 내가 바로, 너무 배열의 크기를 선언해야한다고 생각, * 30 40? – user6428015
그렇게 할 필요가 없습니다. 새로운 배열 (30,40)은 요소 30과 40을 가진 배열을 만듭니다. –