毎週のごとくこの時間は次の授業(Java)の課題をやってる訳ですが。。。わからん!
まだ5回しかやってないのにこんなの課題で出されるんですよ。
class MineSweeper {
static int M = 16, N = 16, NMINE = 40;
static int MINE = -1;
static int[][] ground = new int[M+2][N+2];
static void show() {
// 配列groundの内容を表示する.
int i,j;
for (i = 1; i <= M; i++) {
for (j = 1; j <= N; j++) {
if (ground[i][j] == MINE) {
System.out.print(" *");
}
else if (ground[i][j] == 0) {
System.out.print(" ");
}
else {
System.out.print(" " + ground[i][j]);
}
}
System.out.println();
}
}
static void mine() {
/* 乱数を用いて,配列groundに地雷を埋め込む.地雷があるところには,
MINE(=-1)が置かれ,それ以外は0が入る.地雷の数はNMINE(=40)個である.
また,地雷が置かれる地域は,配列groundの行で1~Mまで,列で1~Nまでの
範囲であるが,次のcountの計算を楽にするため,境界上の0行目とM+1行目,
および0列目とN+1列目も使えるようにしてあり,そこにはすべて0が入る.*/
int sel,rem,i,j;
sel = NMINE; rem = M*N;
/*sel: 埋めるべき地雷の残りの数
rem: 地雷を埋めるかどうか決定すべき残りの格子の数*/
for (i = 1; i <= M; i++) {
for (j = 1; j <= N; j++) {
if (Math.random() < (double)sel/(double)rem) {
ground[i][j] = MINE;
sel--;
}
else {
ground[i][j] = 0;
}
rem--;
}
}
for (i = 0; i < M+2; i++) {
ground[i][0] = 0;
ground[i][N+1] = 0;
}
for (j = 1; j <= N; j++) {
ground[0][j] = 0;
ground[M+1][j] = 0;
}
}
static void count() {
/* メソッドmineがすでに呼ばれた後に呼び出され,地雷が埋め込まれていな
いgroundの各要素について,その回りに隣接する格子にある地雷の数を数え,
それを配列要素の値としてしまう.*/
int i, j;
double[][]NoM = new double [M-1][N-1];
/*16*16の2次元配列を定義して、[i-1][j-1],[i][j-1],[i+1][j-1],[i][j-1 ],[i][j+1],[i+1][j-1],[i+1][j],[i+1][J+1]に地雷があるかを調べる*/
NoM[i][j] = (ground[i-1][j-1] + ground[i][j-1] + ground[i+1][j-1] + ground[i][j-1] + ground[i][j+1] + ground[i+1][j-1] + ground[i+1][j] + ground[i+1][j+1])*(-1) ;
}
public static void main(String args[]) {
mine();
count();
show();
}
}

で、わからないのはcountクラスのところのiとjの初期化?だっけ。コンパイルしてもできてませんっていうエラーがでるだけで実行されない;;
だれか詳しい人教えてくださいませ(。。