Solving the hard 9x9 puzzles at http://www.sudoku-puzzles.net/en/logic-puzzles/binary made me realise I had to bring out a major update of my solver. The program encountered a lot of troubles while solving these puzzles.
Here an overview of the changes I made in this new version:
- Major update of the guess and validate function:
- Full survey of the puzzle before making a guess: making a good choice avoids long computations.
- Enhanced validation after each solving stage to avoid a corrupt puzzle and unnecessary operations.
- Fixes a bug concerning resetting and transposing the puzzle (caused changes to the original puzzle).
- Extended the function that calculates a set's rank.
- Overall update of the solving sequence:
- Higher rank for the guess and validate function was necessary to solve very difficult puzzles.
- Made the guess and validate function in accordance with the other functions in the solving sequence.
- Level of recursion is printed in the console.
- Made the find pairs function in accordance with the other solving stages: row-operations instead of column-operations.
Some of these hard puzzles are really difficult! Guesses have to be made in an very early stage. Try it yourself!