A solver for Sudoku