الگوریتم کلی برنامه به صورت بازگشتی است و به صورت کلی می توان در چهار مرحله به نتیجه رسید:
1-پر کردن حانه های که تنها یک حالت ممکن دارند.
2-گدشتن از حانه ای که هیچ احتمالی برای آن وجود ندارد
3-پر کردن یک خانه با یکی از عدد های محتمل
4-بازخوانی برنامه به صورت برگشتی (Recursive)
Solving Sudoku Using Recursive Backtracking
function X = sudoku(X)
% sudoku(X), expects a 9-by-9 array X.
% Fill in all “singletons”.
% C is a cell array of candidate vectors for each cell.
% s is the first cell, if any, with one candidate.
% e is the first cell, if any, with no candidates.
[C,s,e] = candidates(X);
while ~isempty(s) && isempty(e)
X(s) = C{s};
[C,s,e] = candidates(X);
end
% Return for impossible puzzles.
برای دریافت کامل کد
تماس بگیرید