Notes on the new source code

  1. The interfaces and packaging has changed a little:

    1. The IModelCombo and IViewCombo interfaces are now gone.

    2. Some of the interfaces have moved from/to GameIO to/from model. In particular, IModel is now in model.

  2. You should use the supplied GameModel code, once you copy your code to load your players to it. The new code has additional functionality.

  3. New features:

    1. Time limits on players. The remaining time for a player is accessible through the IModel interface.

    2. Dynamic class loading of INextMoveStrategies:

      1. The strategy must be specified using a fully qualified class name (i.e. included package name).

      2. The strategy is assumed to have either a no-parameter constructor or a constructor that takes an IModel only.

      3. A factory that creates ComputerPlayers with that strategy will be created and added to the drop lists.

    3. Randomized mapping. Both IBoardModel.map() and IBoardModel.mapAll() now traverse their sets of (row, col) in random order. The order changes every time map() or mapAll() is called.

  4. This is the code that will be used for the Othello tournament.