SpaceWar!

I made a "spacewar" implementation over the weekend. Now I can finally say I "hacked it out over a weekend"! And I've finally matured to actually learning and using libraries instead of rolling around in the selected language's features. As an amateur programmer, this is an achievement.

I iterated over a few designs before eventually settling on a structure where each "object" in the game is an item in a doubly-linked list (doubly linked so that removing items is just as easy as adding them). At first, I had a few catch-all "draw", "move", "collide", &c. functions which would then be called on each item of the list via a function pointer (thanks for the habit, Lisp) but I found this made it difficult to locate code describing certain object behaviors, so I changed the object model to include a few "function slots", which would call specialized object behavior before calling the generic behavior themselves. This made the code easier to work with, which made it easier to implement graphics, a game over screen, etc.

TO-DO: