Fun fact!
Did you know that Sudoku means 'single number' in Japanese?It refers to the fact that each number may only appear once in each row, column and 3x3 square.
How the solver works
This Sudoku solver uses a Forward Checking algorithm. The basic idea is to keep track of which numbers can be filled in without immediatly causing problems and to then fill in a number at random, backtracking when any square has no legal numbers left. Crucially, when filling in numbers any relevant empty squares are updated i.e. the column, row and 3x3 area. That way the algorithm can discover early that it needs to backtrack.
Practically, this algorithm is implemented in C# and optimized to run on one single fast CPU.