Sudoku Solver (Part 1) - Puzzle Solver and Generator