我正在尝试实现数独库。我做了生成器,现在正在做求解器,功能之一是检查网格的唯一性(返回许多可用的解决方案,超过1个-没有唯一性解决方案)。 我被这个递归函数卡住了,我不能返回数字,只是打印网格...
public static void checkSolutionsNum (Grid grid_) {
Grid grid = new Grid(grid_); //Makes copy of the the grid .
int size = grid.getSize(); //Gets the size of the grid.
Cell cell = grid.getNextEmptyCell();
if (cell == null) { //Grid is full.
System.out.println(grid);
}
else {
for (int num = 1 ; num <= size ; num++) {
cell.setValue(num);
if (Checker.isAvailableNumberInCell(cell,grid)){
checkSolutionsNum(grid)
}
}
}
}
这是我目前使用的算法。我希望它返回许多可用的解决方案,而不是打印解决方案。