【发布时间】:2012-12-03 21:08:07
【问题描述】:
我的 Sudoku Solver 出现了一些问题,我需要制作,我应该做的是创建一个程序来检查输入的 Sudoku 谜题是否正确。我有检查每一行、每一列和“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
我完全不知道如何编写这个方法来输出,谁能帮我解释一下? (也忽略所有数独都返回“正确!”的事实,我自己应该能够弄清楚。)
【问题讨论】:
-
它在哪里给出
Exception?我的意思是,哪一行? -
java.lang.ArrayIndexOutOfBoundsException: 4 这是哪一行:System.out.print(puzzle[row][column]);
标签: java