语言: Java
目标: 一般:解决数独游戏
具体:做一个递归方法solve():
问题: 循环尝试填充整数n,但总是先尝试最小的数字.如果我使用递归,整数将始终是相同的.
问题: 1.如何使代码填充1到9之间的数字.
如何使用递归来部分或完全擦除进度并尝试不同的数字.
(额外)我到目前为止构建的代码部分地解决了数独(直到空方块无法填充),但现在它甚至没有填充第一个方块,即使它之前做过.这不是我的主要问题,但如果有人注意到这个问题,我会非常感激,如果有人指出的话.
回顾: 我正在阅读关于递归的课程材料,但无法找到正确的信息.
免责声明: 方法printMatrix之外的所有println命令都用于测试
这是有问题的方法:
// prints all solutions that are extensions of current grid
// leaves grid in original state
void solve() {
//local variables
int[] currentSquare;
int currentRow;
int currentColumn;
boolean checkConflict;
currentSquare = new int[2];
//saftey limit for testing
int limit;
limit = 0;
while(findEmptySquare() != null){
currentSquare = findEmptySquare().clone();
currentRow = currentSquare[0];
currentColumn = currentSquare[1];
//System.out.println(" column c:"+currentColumn+" row r:"+currentRow); …Run Code Online (Sandbox Code Playgroud)