gpt4 book ai didi

Java- 帮助编写数独

转载 作者:行者123 更新时间:2023-12-02 08:21:14 25 4
gpt4 key购买 nike

我正在尝试用 java 实现 Sudoko。

(有一个打印矩阵的 Gui 类)。

这是我编写的关于矩阵行 (9X9) 的 2 个方法的示例。

当单元格中存在“-1”时,该方法会放入一个未出现在特定行中的数字,如果已经存在数字,则会在索引位置将 boolean 数组更新为“true”等于数字(数字可以在1-9之间)。

它在 4 次循环后停止,我很难理解为什么。

有人能看出哪里出了问题吗?也许是理解错误?

public static boolean checkRow(int row, int[][] matr) {
boolean[] ind = new boolean[9];
Arrays.fill(ind, false);
for (int j = 0; j <= 8; j++) {
if (matr[row][j] == -1) {

int n = whatToputRow(row, matr);

if (n == 0) {
return false;
} else {
matr[row][j] = n;
ind[n - 1] = true;
System.out.print(n+" ");
}
} else {
ind[matr[row][j] - 1] = true;
}
}

return checkBoolean(ind);
}



public static boolean checkBoolean(boolean[] mat) {
for (int i = 0; i <= 8; i++) {
if (!mat[i]) {

return false;
}
}
return true;
}


public static int whatToputRow(int row, int[][] mat) {

for (int number = 1; number <= 9; number++) {
boolean bool = false;
int i = 0;
while (!bool && i <= 8) {
if (mat[row][i] == number) {
bool = true;
} else {
i = i + 1;
}
}
if (bool == false)
return number;

}
return 0;
}

最佳答案

我怀疑 whatToPutRow() 在第四次迭代后返回 0。当您在该条件下返回 false 时,循环将停止运行。

关于Java- 帮助编写数独,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com