![]() |
| Một bàn cờ Sudoku |
Đáp án cho bàn cờ này như sau:
Sử dụng giải thuật quay lui để giải bài toán này, ta có đoạn mã giả như sau:
function backtrack(position){ if (isEndOfGrid == true){ // Empty cells filled. Solution found. Abort return true; } foreach (x from 1 ... 9){ grid[position] = x; if (gridIsValid == true){ // Check for collisions if (backtrack(nextPosition) == true){ // Move to next empty cell return true; // Empty cells filled. Solution found. Abort. } } } grid[position] = NULL; // Empties cell return false; //Solution not found. Backtrack.} |
Thuật toán quay lui thực hiện các bước như sau:
Chương trình Demo Giải trò chơi Sudoku bằng thuật toán quay lui do Vương Huỳnh Long viết:


