を呼び出すと、私は私のコードを紹介します:2D配列方法は、まずよく
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = 0;
int b = 0;
System.out.println("Welcome to Mine Sweeper!");
a = promptUser(in, "What width of map would you like (3 - 20):", 3, 20);
b = promptUser(in, "What height of map would you like (3 - 20):", 3, 20);
char[][] map = new char[a][b];
eraseMap(new char[a][b]);
}
public static int promptUser(Scanner in, String prompt, int min, int max) {
int userInput;
System.out.println(prompt);
userInput = in.nextInt();
while (userInput < min || userInput > max) {
System.out.println("Expected a number from 3 to 20.");
userInput = in.nextInt();
}
return userInput;
}
public static void eraseMap(char[][] map) {
for (int i = 0; i < map.length; ++i) {
for (int j = 0; j < map.length; ++j) {
System.out.print(Config.UNSWEPT + " ");
}
System.out.println();
}
return;
}
基本的に、私はシンプルな掃海艇のゲームを作成しようとしているが、これが何をやっていることは、それはゲームマップを印刷していないということですよ幅+高さの代わりに幅のみを使用します。例えば、幅として3、高さとして4を入力すると、出力されます。
. . .
. . .
. . .
これはどのように修正できますか?
@BrianKangそして、あなたが 'a'と' b'の名前を入れ替えると、うまくいくでしょう...それらは非常に貧しい変数名です。これは 'new char [height] [width];で、これを明確にする必要があります... –