Commit graph

97 commits

Author SHA1 Message Date
Olivier Teulière
8e7c61e2d8 New command to handle changes of the current player. This fixes history navigation in free game mode 2008-11-23 17:07:42 +00:00
Olivier Teulière
7fa8c2b58f Removed experimental support of the real bag. It was not a good idea after all... 2008-11-23 16:58:31 +00:00
Olivier Teulière
675b534e77 - Fixed compilation in debug mode
- Centralized navigation in the game history in the Navigation class
 - The Qt interface now has (very) basic controls to navigate in the history.
2008-11-23 16:55:28 +00:00
Olivier Teulière
bce4ce4604 - The main game modifications (playing a move, setting a new rack, ...) are now done using the Command design pattern, which alows undoing these changes easily.
- Added support for navigation in the game history to the text interface (not unit-tested yet)
2008-11-23 08:18:03 +00:00
Olivier Teulière
70be50c64e A lot of clean-up:
- Removed logiv from the History class
 - Used BOOST_FOREACH to simplify loops
 - Remove useless annotations and doxygen blocks
 - Added some constness
 - Marked Training::setRack() as deprecated
 - Improved compilation order in game/
2008-11-22 13:09:28 +00:00
Olivier Teulière
a9626975e0 - Support shuffling the rack of the current player
- More intuitive players management (in particular when there are several
   human players)
2008-09-14 17:56:18 +00:00
Olivier Teulière
12cc41fce7 Core:
- 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
2008-09-13 21:32:45 +00:00
Olivier Teulière
75a67b28a5 Dic:
- 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.
2008-08-31 11:48:11 +00:00
Olivier Teulière
fa493d4135 Fixed a warning 2008-07-27 15:26:15 +00:00
Olivier Teulière
52b7363888 Players are not created by the Game object anymore but by the user of the class.
This allows more flexibility, in particular to choose the type of player or its name.
2008-01-28 19:17:33 +00:00
Olivier Teulière
d8780822c2 - Fixed a bug due to the reject sign '-' preventing to load a saved training game
- Qt interface: Loading and saving a game is now supported (it only works in
   training mode, due to limitations in the core)
2008-01-26 10:10:50 +00:00
Olivier Teulière
8c3708fa99 - Removed Game::setRackRandomOld() (replaced by Game::setRackRandom())
- Adapted regression scenarii
2008-01-15 14:56:38 +00:00
Olivier Teulière
7e7f7f2dfa - wxwin/mainframe.cc: Fixed a crash occurring when no config file is found
- 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
2008-01-10 10:23:36 +00:00
Olivier Teulière
e7a8d01a8d Merged the "cppdic" branch back into HEAD.
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)
2008-01-08 13:52:32 +00:00
Antoine Fraboulet
d86bd2af4a - 32/64 bits types
- unused function parameters
2007-08-04 20:01:27 +00:00
Olivier Teulière
421d0a29b1 Fixed a few char/wchar_t issues. The remaining ones need a wchar_t-aware dictionary 2006-12-23 13:50:43 +00:00
Antoine Fraboulet
9f86b53021 - add debug strings 2006-08-11 22:13:02 +00:00
Olivier Teulière
bb5a17d0f1 Indentation 2006-01-22 20:48:17 +00:00
Olivier Teulière
77be2e9219 Backport of the 'multibyte' branch on HEAD. 2006-01-22 12:23:52 +00:00
Antoine Fraboulet
55badf52e4 - correct helperSetRackRandom with RACK_ALL (replace tiles in bag)
- add game_io.cpp to load/save a game
2006-01-01 19:48:36 +00:00
Olivier Teulière
9aeeafa61b Removed the useless Game::getPlayerRack() method 2005-12-27 15:01:07 +00:00
Olivier Teulière
af720a02ee - Commented out some debug messages preventing the regression to work properly.
- Re-indented a few lines to remove tabulations and keep a consistent coding style
2005-12-27 13:11:17 +00:00
Antoine Fraboulet
fc157bc08f - correct bug in Game::back
- add regression test for this case
2005-12-27 01:06:54 +00:00
Antoine Fraboulet
4c56636aef - use History class
- back is still buggy
2005-12-26 22:58:58 +00:00
Olivier Teulière
777a6a5e8c The constuctors of the players now take as argument the ID of the player 2005-11-06 17:13:45 +00:00
Olivier Teulière
4cef120cce Minor factorization, and avoided another copy of PlayedRack 2005-11-06 01:05:06 +00:00
Olivier Teulière
03e8a80128 Use a vector of Turn objects instead of several history vectors 2005-11-05 23:22:41 +00:00
Olivier Teulière
5b682ef9b8 - Removed Game::format*
- Added Game::getPlayer
2005-11-05 15:48:59 +00:00
Olivier Teulière
12894e00e2 Take more advantage of the Coord class, and remove the useless accessors
from Round (to force using the Coord object)
2005-11-05 13:56:59 +00:00
Olivier Teulière
85a30f16a2 Use the Coord class for rounds 2005-11-05 11:01:58 +00:00
Olivier Teulière
50fc82f60c First backports from the branch (Game::getBoard and Game::getBag, mainly) 2005-11-04 23:26:03 +00:00
Olivier Teulière
fe13a5e627 Removed the $Id:$ lines on HEAD 2005-11-04 20:00:05 +00:00
Olivier Teulière
e3bc46b114 Updated licence text with FSF's new address. 2005-10-23 14:53:42 +00:00
Olivier Teulière
eccb1ca5bb Pass argument by reference to avoid a copy 2005-04-20 20:58:51 +00:00
Antoine Fraboulet
0d69751dfb "int getNCharInBag(char) const" changed to "int getNCharInBag(Tile) const;" 2005-04-19 16:23:04 +00:00
Antoine Fraboulet
96e94a6be3 getPlayerRack display option added + Game::back() error return 2005-04-09 16:10:25 +00:00
Olivier Teulière
daeb2cb228 Fixed a nasty bug when playing a joker game. 2005-04-02 20:46:42 +00:00
Antoine Fraboulet
ebe08e3d6e add a getCurrentRack for display purpose 2005-03-29 06:56:06 +00:00
Olivier Teulière
7406f2c3c5 Added support for "Joker games", available using --joker on the command-line.
This is a kind of hack currently, but it works well...
2005-03-28 22:07:22 +00:00
Olivier Teulière
57c1fcaf8e Added an ASSERT macro, which aborts execution if the condition given as a
parameter is not verified. This simplifies te code in several places.
The old PDEBUG macro has been removed.
2005-03-27 21:45:04 +00:00
Olivier Teulière
5784cec146 Added/updated comments in many headers 2005-03-27 17:30:48 +00:00
Olivier Teulière
7db671ad31 Isolated the print* methods in a dedicated class, outside of the Game library 2005-02-26 22:57:34 +00:00
Olivier Teulière
6ca09c9ac9 Added a GameFactory class to centralize the allocation and deallocation of
Game objects.
2005-02-24 08:06:24 +00:00
Olivier Teulière
82547c5f66 - Better handling of the players with inheritance and with a clean interface
for the AI players
 - Moved the search results accessors from Game to Training
2005-02-17 20:01:59 +00:00
Olivier Teulière
cf94b4e015 Handling of which player has played is only done in the Duplicate class now
(since the other modes do not need this)
2005-02-12 18:54:57 +00:00
Olivier Teulière
d41530c496 Minor API enhancements 2005-02-09 22:33:56 +00:00
Olivier Teulière
b7032e2d78 - The Game library is now in C++.
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).
2005-02-05 11:14:56 +00:00