我是新来的,对不起,如果道德。
我正在尝试使用回溯方法编写一个数独求解器,使其通过每次递归动态地将所有数据传递到文档中。当我尝试使用setInterval()或setTimeout()时,它不能按我希望的方式工作。我需要的应该与this
类似以下是代码:
function backtrack(position) {
if (position === 81) {
return true;
}
if (sudokuArray[position] > 0) {
backtrack(position + 1);
} else {
for (var x = 1; x <= 9; x++) {
if (isValid(x, parseInt(position / 9), position % 9) === true) {
sudokuArray[position] = x;
//some code that invokes putSudokuArrayBack function with a small delay
//everytime backtrack function is invoked
if (backtrack(position + 1) === true) {
return true;
}
}
}
sudokuArray[position] = 0;
return false;
}
}
function putSudokuArrayBack() {
for (var i = 0; i <= 81; i++) {
var indexString = '#val-' + parseInt(i / 9) + '-' + i % 9;
$(indexString).val(sudokuArray[i]);
}
}
任何想法(如果可能的话)?提前谢谢!