如何在递归函数循环中创建暂停

时间:2015-03-15 16:59:45

标签: javascript recursion

我是新来的,对不起,如果道德。

我正在尝试使用回溯方法编写一个数独求解器,使其通过每次递归动态地将所有数据传递到文档中。当我尝试使用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]);
    }
}

任何想法(如果可能的话)?提前谢谢!

0 个答案:

没有答案