~Organized into classes~

The most important part of OOP, organizing code into classes makes
everything more focused and organized (trust me on this one).  Without
separate classes, we would have one class trying to control every aspect
of the game, which gets nasty very quickly.  I used interfaces here, so
read up on those if you're unfamiliar.