Java 棋盘上有8个皇后
我是一个初学者,我正在创建一个程序,将在棋盘上放置8个皇后。 我必须: 1创建一个空白棋盘8X8二维整数数组,全部为0 2使用循环,向用户询问电路板上的8个位置,在此位置将0替换为1 3显示最终板 我不必包括任何错误检查或重复位置检查 我的代码没有正确存储这些值。 只有最后一个打印正确Java 棋盘上有8个皇后,java,n-queens,Java,N Queens,我是一个初学者,我正在创建一个程序,将在棋盘上放置8个皇后。 我必须: 1创建一个空白棋盘8X8二维整数数组,全部为0 2使用循环,向用户询问电路板上的8个位置,在此位置将0替换为1 3显示最终板 我不必包括任何错误检查或重复位置检查 我的代码没有正确存储这些值。 只有最后一个打印正确 package chessboard; import javax.swing.JOptionPane; public class ChessBoard { /** * @param args the co
package chessboard;
import javax.swing.JOptionPane;
public class ChessBoard {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int chessBoardArray[][] = new int[8][8];
for (int z = 0; z < 8; z++) {
int rowValue = Integer.parseInt(JOptionPane.showInputDialog("Enter the row value (1-8)"));
int columnValue = Integer.parseInt(JOptionPane.showInputDialog("Enter the column value (1-8)"));
int rowValueFinal = rowValue - 1;
int columnValueFinal = columnValue - 1;
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (i == rowValueFinal && j == columnValueFinal) {
chessBoardArray[i][j] = 1;
} else {
chessBoardArray[i][j] = 0;
}
}
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[0][k]);
} else {
System.out.println(chessBoardArray[0][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[1][k]);
} else {
System.out.println(chessBoardArray[1][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[2][k]);
} else {
System.out.println(chessBoardArray[2][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[3][k]);
} else {
System.out.println(chessBoardArray[3][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[4][k]);
} else {
System.out.println(chessBoardArray[4][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[5][k]);
} else {
System.out.println(chessBoardArray[5][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[6][k]);
} else {
System.out.println(chessBoardArray[6][k]);
}
}
for (int k = 0; k < 8; k++) {
if (k < 7) {
System.out.print(chessBoardArray[7][k]);
} else {
System.out.println(chessBoardArray[7][k]);
}
}
}
}
这个循环不需要存在 您正在清除整个电路板并只设置一个单元
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (i == rowValueFinal && j == columnValueFinal) {
chessBoardArray[i][j] = 1;
} else {
chessBoardArray[i][j] = 0;
}
}
}
这个循环不需要存在 您正在清除整个电路板并只设置一个单元
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (i == rowValueFinal && j == columnValueFinal) {
chessBoardArray[i][j] = 1;
} else {
chessBoardArray[i][j] = 0;
}
}
}
请使用您看到的输出vs what is expected您的else分支覆盖以前存储的所有值-删除它并创建一个初始循环,将数组的所有值设置为0@UnholySheepint[]已在初始化0@cricket_007哎呀,最近编写了太多的C代码我投票结束这个问题,因为SOPlease的家庭作业规则与您看到的输出vs预期值您的else分支覆盖了以前存储的所有值-删除它,并有一个初始循环,将数组的所有值设置为0@UnholySheepint[]已在初始化0@cricket_007哎呀,最近编写了太多的C代码。我投票决定将这个问题作为离题题题结束,因为作业规则是Soy,你也可以在你的答案中添加一个改进的输出循环。@Blobonat考虑过了,但这是他们的作业,不是我的。你也可以在你的答案中添加一个改进的输出循环。@Blobonat考虑过了,但这是他们的作业,不是我的。