我的数独求解器出现了一些问题,我需要制作,我应该做的是创建一个程序来检查输入的数独谜题是否正确。我有检查每一行、每一列和“minibox”是否工作的代码。我现在唯一的问题是打印出拼图。这是我到目前为止所拥有的:
public String printGrid(int size, int[][] puzzle){
double temp = Math.sqrt(size);
for(int row = 0; row < size; row++){
for(int column = 0; column < size; column++){
System.out.print(puzzle[row][column]);
if(column == temp - 1) {
System.out.print("|");
}
if(row == temp - 1){
for(int i = 0; i < size; i++){
System.out.print("-\t");
}
}
if(column == size - 1) {
column = 0;
row++;
}
}
}
return "Correct!";
}
例如,大小为 4,输入的数独为:
1 2 3 4
4 3 2 1
3 4 1 2
2 1 4 3
我的输出看起来像这样:
1 2 | 3 4
4 3 | 2 1
----+----
3 4 | 1 2
2 1 | 4 3
但是,我当前的代码给出了 ArrayOutOfBounds 错误并输出:
- 2- - - - 1- - - - 4|121|43
我完全迷失了如何编写这个方法来输出,任何人都可以为我解释一下吗?(也忽略所有数独都返回“正确!”的事实,我自己应该能够弄清楚。)