- Fixed a crash on Windows
- Do not authorize words if the cross-checks are invalid (it was possible when playing a joker)
- Fixed detextion of invalid moves
- Improved unit tests, and fixed a bug in one of them
Qt interface:
- Do not allow playing a word if the coordinates are missing
- Better focus
- Be more explicit if the dictionary name is missing
- Changed the colour of the joker on the board, instead of displaying it in lower case
- Incorrect words are now refused by default
- Changed the way words are input: the case is no longer relevant,
and the coordinates are in a separate control
- Explain the problem when a word is refused
- Updated the French translation
- Embed the program icon into the executable on Windows: the icon is not visible in Windows explorer
- Fixed gettext configuration on Windows. The translations now appear, but the accents still don't display correctly.
- Fixed a few translation issues
- Initialize the random numbers generator, and print the seed value
- Handle properly Qt builds without STL support
- Save the position of the main window
- Got rid of the useless toolbar
- Better size of the preferences dialog
- Hopefully fixed translation issues on Windows
- The Settings class throws an exception when asked for a non-existing setting
- Display the Eliot icon
- Improved printing
- Allow changing the level of computer players
- Generate automatically a default name for players
- Translate Qt's own strings (only works on Linux at the moment)
- Throw an exception if a regular expresison is invalid
- Handle the exception in callers code
Game:
- Fixed a bug in setRackRandom()
Qt interface:
- Display the dictionary name in the status bar
- Implemented printing
- Translation of the interface into French. The menus have temporarily lost their accelerator keys in English.
- regexp search results are now in uppercase, like other results
- the regexp search indicates if there are more results than the maximum
allowed
Qt interface:
- new window with some dictionary tools: check word, word+1 and regexp search
- New regexp parser using Boost.Spirit. Lex and yacc are now gone.
The main advantage of this new parser, apart from being purely C++,
is that it can handle wide characters.
Currently, the new parser does the same as the previous one, but the
code is not yet ready to use regular expressions with non-ASCII
dictionaries.
- Added auxiliary windows for the history and the external board
- Gave a title to auxiliary windows and remember their position (more or less) and size
- Auxiliary windows do not survive anymore after the main one
- Preferences are now stored in a sensible place
- Ensure unicity of players names (in the interface only, not the core)
- Update the main window title with the game type
- Display the player name in the history
- The history widget is now able not to align the rack and the corresponding word
- The dictionary path is remembered in the preferences
- Ask for confirmation when loading a dictionary in the middle of a game
- Preview tiles are coloured differently, and joker characters are in lowercase
- New PlayerTabWidget control to simplify the code in MainWindow
- Simplification and uniformization of signal handling when the Game object is changed or updated
- Improved the general layout a little bit (but the resizing behaviour is far from perfect)
- the multiplayer modes are more or less playable
- the training mode is not playable at all
- the current layout is still experimental
- many dialogs and options are missing
- tested on Linux only
There are still hundreds of things to do...
- Use player names in the ncurses interface
- In training mode, create the hidden player in the constructor, not in start()
- When the AI has nothing to play, change the letters instead of simply passing
- New Makefile to build the win32 dependencies automatically (INSTALL file updated)
- Fixed a bug occurring in duplicate mode: sometimes the game ended too early,
while it was still allowed to go on.
Also updated the corresponding regression scenario
There are too many change to list properly, here is an overview of the main changes:
- the dictionary is now in C++
- the dictionary has a new format, where it is possible to specify the letters,
their points, their frequency, ... It is backwards compatible.
- Eliot now supports non-ASCII characters everywhere
- i18n of the compdic, listdic, regexpmain binaries
- i18n of the wxWidgets interface (now in english by default)