It turns out that modeling the rules of Chess and Checkers in code is a pretty good way to teach and learn some programming concepts.
Inspired by Chapter 2.4 "Abstracting...