What's more, since wxWidgets is very slow to handle the list of results (benjamins in particular), a search done with the search windows open seems more responsive.
- add doxygen file description
- revert Dic_chr / board_search patch
returning the character instead of the code
was a HUGE performance penalty
The dictionary must use codes, the board must be
made to use codes instead of dic using tiles.
- add Dic_char and Dic_char_lookup as temporary
fixes for board_search. Should modify Board and Cross class
instead.
- create dic_code_t type
Dic_lookup takes a string containing real chars, not codes.
The idea is to hide the internal representation of the characters from the
users of the dictionary, who don't care about it.
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.