私は今 '地雷船'に取り組んでいます。フィールドを設定しました。鉱山の隣人を確認する
私にはカップルの質問があります。まず、鉱山の数は1からfieldSize-1でなければなりません。これが正しいかどうかは分かりませんが、私は 'minesNum'と宣言します。 第2に、鉱山の数が正しいと仮定すると、私は鉱山の隣人をチェックしたいので、私は9個のif文を持っていますが、2番目のif文にエラーメッセージがあります。 'Uncaught TypeError: 'of undefined'
私は約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;
}
}
}
最大サイズは40×30で、私は右、私はあまりにも、配列のサイズを宣言するべきだと思いますか? – user6428015
これを行う必要はありません。新しい配列(30,40)は、要素30と40の配列を作成します –