Puzzles
Implementing puzzles and games efficiently requires explicit and complex
control of the execution. In this lecture, we begin with a variety of
puzzles and look at their representation as mathematical problems. We learn
about two main types of non-determinism, and search strategies to tame them.