This project consists of a sudoku solver written in python. It uses a depth-first search technique iterating over all the possibilities and attempting them. It's also been optimized to be fast. It flattens the board to an array instead of a matrix and uses lists, sets, and arrays for caching and faster calculations.
- Easy (Generated from WebSudoku)
- Medium (Generated from WebSudoku)
- Hard (Generated from WebSudoku)
- Evil (Generated from WebSudoku)
- Arto Inkala "World hardest"
- Canvas (example provided by the teacher in cavas)
- Al escargot
- Unsolvable 515
- Unsolvable 28
- Unsolvable 49
Unsolvable 515 was this week's sudoku (9/22/2022). The other unsolvable were found from this blog post claiming that they were even harder than the Arto Inkala sudoku, which our algorithm struggles a little to solve.
Running the solver 200 times for each board yields the following results:
Interestingly the unsolvable ones take longer than "the world's hardest sudoku".