(Simple) prolog application to solve sudoku.
Follow this simple steps to solve a sudoku:
- Install a prolog environment:
# on debian/ubuntu/mint based linux distributions sudo apt-get install swi-prolog # others: find out yourself on google... ;) - Run the prolog console
$ cd <THIS_REPO> $ swi-pl Welcome to SWI-Prolog .... ?- - Define a sudoku and run the solver
[sudoku]. S = [_,_,_,2,6,_,7,_,1, 6,8,_,_,7,_,_,9,_, 1,9,_,_,_,4,5,_,_, 8,2,_,1,_,_,_,4,_, _,_,4,6,_,2,9,_,_, _,5,_,_,_,3,_,2,8, _,_,9,3,_,_,_,7,4, _,4,_,_,5,_,_,3,6, 7,_,3,_,1,8,_,_,_], solvesudoku(S, Solution). or run the demonstration file:
[demonstration]. test. The output will be something like this:
?- [sudoku]. true. ?- S = [_,_,_,2,6,_,7,_,1, | 6,8,_,_,7,_,_,9,_, | 1,9,_,_,_,4,5,_,_, | 8,2,_,1,_,_,_,4,_, | _,_,4,6,_,2,9,_,_, | _,5,_,_,_,3,_,2,8, | _,_,9,3,_,_,_,7,4, | _,4,_,_,5,_,_,3,6, | 7,_,3,_,1,8,_,_,_], | solvesudoku(S, Solution). Solve sudoku... Solution: [4,3,5,2,6,9,7,8,1] [6,8,2,5,7,1,4,9,3] [1,9,7,8,3,4,5,6,2] [8,2,6,1,9,5,3,4,7] [3,7,4,6,8,2,9,1,5] [9,5,1,7,4,3,6,2,8] [5,1,9,3,2,6,8,7,4] [2,4,8,9,5,7,1,3,6] [7,6,3,4,1,8,2,5,9] S = Solution, Solution = [4, 3, 5, 2, 6, 9, 7, 8, 1|...].