While it was fun to solve the puzzles, it is even more fun to write code to solve them. Starting as a hobby, we decided to make it a teaching tool, so the software will solve the puzzle in a human way (no brutal force!) and explain the steps as it go along.