Backtracking Sudoku solver with a heuristic. It always tries the square with the least possible choices. Can solve 'very easy' puzzles instantly; slow for harder puzzles.
Optional progress output (slower). It displays a * for every square where there was a single possible number, and a ? if there were other choices.