This project combines three strategies to solve sudokos (including diagonal ones).
If a box has a value assigned, then none of the peers of this box can have this value.
If there is only one box in a unit which would allow a certain digit, then that box must be assigned that digit.
The naked twins constraint works by finding pairs of boxes containing the same two possible solutions occuring in the same unit. Since this tells us that one of the two possibilities must belong in each box, we can remove those two possibilities from all the other boxes in the unit if they occur.
Pick a box with a minimal number of possible values. Try to solve each of the puzzles obtained by choosing each of these values, recursively.
This project requires Python 3.
python solution.py
Optionally, you can also install pygame if you want to see the visualization.
Download pygame here.