Puzzles and puzzle solvers