General Puzzle Solving