XoxWars extends SpaxeWars in several key ways.  It maintains virtually all the old SpaxeWars code, except for eliding items like meteors that are not used.  All the names are changed from 'SWxxx' to 'XWxxx' to avoid collisions.

The modifications are entirely to the XoxWars.m method, except for some convenience methods for alliance information.  There are also several new classes:  Tracker and the Commander classes.

The scenario class XoxWars now has:
1.  A list of the computer player "classes", as well as a list of the commanders in play.
2.  A "oneStep" method, so Xox will periodically call it to move the computer players.
3.  Methods for initalizing and responding to the "player" PopUpLists.

The generic "Commander" class has the basic methods for being "oneStep"ed and owning a Ship, and being assigned "Targets", but no actual order-giving ability.  The idea was to make it general enough to allow one commander to move several ships against several targets.

CrazyMander simply implements a random choice of actions, between turning, thrusting, or firing.  These actions have the same affect as keystroke from a human player.

TrackMander makes use of the Tracker class to find information about the relative position and velocity of a Target.  It even attempts to compensate for the motion of the target.  Its strategy is to match velocity, then move in and fire.  The Tracker class can order the owning ship to 'track' the Target in various ways.

If one implemented playerClasses as a class which could search for bundles, instead of just filling it in XoxWars, it could easily dynamically load new players.

Feel free to use and mangle this source code to do new and interesting things, even as I did to SpaxeWars.

-- Ernie Prabhakar
December 15th, 1994