JavaScriptの初歩的な問題かもしれませんが、今回自分なりに調べた結果初めの地雷の配置部分のfor文が上手く回っていないことに気がつきました。
ソースコードを載せておきます。分かる方がいらっしゃいましたら、教えていただけたらとても嬉しいです。
JavaScript
1コード 2//変数の設定 3const MS_SIZE=8;//マインスイーパーのサイズ 4var i,j; 5var tate,yoko; 6const number_of_mines=8;//地雷の数 7 8// 配列を用意 9var cell = new Array(MS_SIZE); 10for(i=0; i<MS_SIZE; i++){ 11 cell[i] = new Array(MS_SIZE); 12} 13for(i=0; i<MS_SIZE; i++){ 14 for(j=0; j<MS_SIZE; j++){ 15 cell[i][j]=0; 16 } 17} 18 19//地雷を配置 20for(i=0; i<number_of_mines; i++){ 21 tate=Math.floor(Math.random()*(number_of_mines+1)); 22 yoko=Math.floor(Math.random()*(number_of_mines+1)); 23 24 if(cell[yoko][tate]!=-1){ 25 cell[yoko][tate]=-1; 26 } 27 else{ 28 i--; 29 } 30} 31//デバック用 32for(i=0; i<MS_SIZE; i++){ 33 for(j=0; j<MS_SIZE; j++){ 34 document.write(cell[i][j]+" "); 35 } 36 document.write("<br>"); 37} 38 39//地雷の周囲 40for(yoko=0; yoko<MS_SIZE; yoko++){ 41 for(tate=0; tate<MS_SIZE; tate++){ 42 if(cell[yoko][tate]==-1){ 43 for(i=-1; i<2; i++){ 44 for(j=-1; j<2; j++){ 45 if(cell[yoko+i][tate+j]!=-1 && yoko+i<MS_SIZE && yoko+i>=0 && tate+j<MS_SIZE && tate+j>=0){ 46 cell[yoko+i][tate+j]++; 47 } 48 } 49 } 50 } 51 } 52} 53//デバック用 54for(i=0; i<MS_SIZE; i++){ 55 for(j=0; j<MS_SIZE; j++){ 56 document.write(cell[i][j]+" "); 57 } 58 document.write("<br>"); 59} 60
回答2件
あなたの回答
tips
プレビュー