所以即使有問題拋光我的程序。這個程序應該創建一個帶有用戶輸入的1D數組。然後它創建的框「0'的這樣的..替換數組中的字符串並將其保存在內存中?
N = 4個
OOOO
OOOO
OOOO
OOOO
基於所述框和所述用戶輸入座標‘O’被改變爲‘X’。 在記住X的位置並將其包含在下一個循環中的情況下,程序應該在選擇座標之後自行重複。
我試圖執行一個while循環,但似乎代碼只是遍歷數組無需記住十的最後一個位置
我怎麼能更改代碼,以便它做什麼,我需要做什麼?
public static void makeArray(int M) {
String input = "";
boolean repeat = false;
int N = InputNumber(input);
String[] Board = new String[N];
M = (int) Math.sqrt(N);
String A = "O";
String B = "X";
System.out.println("Printing " + (M) + " x " + (M) + " board...");
System.out.println("Done.");
System.out.println();
while (!repeat) {
int X = Xvalue(M);
int Y = Yvalue(M);
int C = convertIndex(X, Y, M);
System.out.println("Marking location " + X + "," + Y + ")");
for (int i = 0; i < (Board.length); i++) {
{
Board[i] = A;
if ((i % M == 0)) {
System.out.println();
}
if (i == C) {
Board[i] = Board[i].replace(A, B);
}
if (i == C && C == -1) {
repeat = true;
}
}
System.out.print(Board[i]);
}
System.out.println();
}
}
public static int convertIndex(int x, int y, int N) {
int valX = (x - 1) * N;
int valY = y;
int targetIndex = valX + valY;
return (targetIndex - 1);
}
public static int Xvalue(int M) {
boolean repeat = false;
int X = 0;
while (!repeat) {
System.out.print("Please enter the X-coordinate: ");
String InputX = new Scanner(System.in).nextLine();
X = Integer.parseInt(InputX);
if (X > M) {
System.out.println();
System.out.println("Error, please enter a valid X Coordinate...");
repeat = false;
} else {
repeat = true;
}
}
return X;
}
public static int Yvalue(int M) {
boolean repeat = false;
int Y = 0;
while (!repeat) {
System.out.println();
System.out.print("Please enter the Y-coordinate: ");
String InputY = new Scanner(System.in).nextLine();
Y = Integer.parseInt(InputY);
if (Y > M) {
System.out.println("Error, please enter a valid Y Coordinate...");
repeat = false;
} else {
repeat = true;
}
}
return Y;
}
您是否嘗試過將其存儲在另一個變量? (這看起來像家庭作業) – Joe
@Joe所以如果它的硬件呢?我沒有要求你爲我編寫程序。你也將它存儲在另一個變量中是什麼意思? – Ronald
問題不在於它是作業,而在於你沒有提供一個簡單的例子,而是用整個程序給我們帶來負擔。這個問題不太可能對其他人有用。 – bhspencer