This simplifies the code in many places, and allows inheritance of the
game mode classes (Training, Duplicate and FreeGame).
- A Tile is no more an unsigned char, but a class: it should help supporting
i18n of the game. The Dic library still uses unsigned chars though.
- Improved the configure script, to enable/disable the compilation of some
interfaces.
- Added a ncurses interface, much nicer than the text one. The game mode and
the number of players are currently hardcoded, it is not possible to change
them interactively (yet).
- Repaired the save/load functions.
NOTE: The wxWindows interface compiles, but is completely broken. I'm afraid it
needs a full rewrite (to support the various game modes in particular).
- 'Training' mode: same behaviour as before
- 'Duplicate' mode: all the players (who can be human players or AI
players) have the same rack, and the best word is played on the
board
- 'Free game' mode: the players (human or AI) have different racks,
and they play one after another
Status:
- Core: the main functions are written, but the API could be more
homogeneous between the different modes.
- Interfaces: the text interface is almost up-to-date, but the
wxwindows one only supports Training mode.
- AI: Currently, AI players always play the best word, which is
optimal in Duplicate mode but not in FreeGame mode. Other strategies
will be written in the future.
- Handling of saved games is broken: a game can be saved and loaded,
but no information about the mode and the players is stored, so it
crashes whatever you do after loading the game.