Java:
您应该初始化
board
变量,可能要在构造函数中对其进行初始化:public class SudokuGenerator {public static final int BOARD_WIDTH = 9;public static final int BOARD_HEIGHT = 9;public SudokuGenerator() { board = new int[BOARD_WIDTH][BOARD_HEIGHT];}}
我相信您在函数nextBoard中的循环迭代器是错误的:
for(int i=1;i<10;i++){ ... }我认为您想从0迭代到9。
- 在功能nextBoard中,您还需要检查变量:
int[] toCheck = {1,2,3,4,5,6,7,8,9};得到一个
java.lang.ArrayIndexOutOfBoundsException,应将其初始化为0到8,否则尝试访问板的第9行,并且会出现运行时错误。
- 您需要解决的另一个问题是x的
nextBoard()
功能设置为9 。nextBoard(int x, int y)
使用以下参数“手动” 调用该函数:nextBoard(7,3)
您将理解为什么x设置为9。专门检查变量的值nextX
。
我相信,如果您使用调试器检查此类错误,它将真的对您有帮助。在这里,您有一个不错的教程,并附有视频说明(以防您使用Eclipse
IDE)。
希望能帮助到你。



