A Program that Solves Sudoku Puzzles