Olivier Teulière
1df3c3ff51
Updated a few copyright dates
2009-01-24 17:44:56 +00:00
Olivier Teulière
53487ca448
French translation update
2009-01-24 17:44:12 +00:00
Olivier Teulière
7fc8309868
- Text interface: removed uses of the 'n' command with a negative argument
2009-01-24 17:43:57 +00:00
Olivier Teulière
4ffaef3e1d
- Throw exceptions in case of problem in Duplicate::setPlayer()
...
- Clean up of the text interface:
- removed all uses of wcstok()
- factorized common code
- made code a bit more robust
2009-01-24 17:11:07 +00:00
Olivier Teulière
7a5056354a
- Setting the rack manually is now done via a command, and can thus be undone
...
- Added non-regression tests for the navigation in the game history (all modes), and removed a less useful test
2009-01-24 10:28:20 +00:00
Olivier Teulière
e085384e2f
- Do not save the splitter position when no game is playing, because the position is not relevant without the players group
...
- Updated the French translation
2009-01-22 21:41:27 +00:00
Olivier Teulière
87e1d4795b
Sorting the search results happens to be quite slow, often much slower than the search itself.
...
But we don't need to sort them all the time, and in general we don't even need to keep all the rounds.
This commit greatly improves the search performance by filtering the results in 3 different ways, depending on the context:
- A limit to the number of results can be given (useful for the training mode). The kept results are the best ones, not the first ones found by the search.
- When only the best round is needed (when the AI is playing with level 100, or when preparing the rack for an explosive game), we don't need to keep rounds with a lower score
- When the AI has a level lower than 100, it is still possible to skip many rounds
The search limit in training mode is configurable (defaulting to 100) and can be deactivated.
2009-01-22 18:30:22 +00:00
Olivier Teulière
771ba0c35e
New BoardSearch class to avoid carrying const parameters all over the place.
...
No functional change.
2009-01-17 14:57:32 +00:00
Olivier Teulière
d0294b5a38
- Echo the input in the text interface when libreadline is not present, so that the non-regression tests can still pass in this case.
...
- Changed a bad file format in a test, and adapted the reference accordingly
2009-01-15 20:55:57 +00:00
Olivier Teulière
e83e4dcc99
- Use splitters to allow the user to resize freely the components of the main window
...
- Save splitters positions from one session to the next
- Fixed default focus issues introduced in the previous commit
2009-01-15 20:22:11 +00:00
Olivier Teulière
d913be52a0
Support explosive games in the Qt interface
2009-01-15 18:33:32 +00:00
Olivier Teulière
8b9478542a
- The core is now able to handle "explosive games" ("parties détonantes"). No interface uses this ability yet.
...
- Fixed a bug in Game::helperSetRackRandom()
2009-01-14 21:53:37 +00:00
Olivier Teulière
229f1fcc14
- Removed the RACK_MANUAL enum value, and the obsolete Training::setRack() method
...
- qt/board_widget.cpp: cosmetics
2009-01-11 14:20:35 +00:00
Olivier Teulière
a4ae71d55d
- TODO update
...
- Allow displaying letter points on the board with an option (on by default)
- Fixed the tab order on the preferences window
- Improved the behaviour and default size of the preferences window
2009-01-04 17:39:27 +00:00
Olivier Teulière
6a2eca1db1
New icons for the navigation actions, and additional ones for some menu items
2008-12-14 13:27:00 +00:00
Olivier Teulière
d2738484e4
Update of the French translation
2008-12-14 13:21:13 +00:00
Olivier Teulière
0e08cccd41
New preference, to allow linking the rack in training mode to the "Plus 1" dictionary tool
2008-12-14 13:20:38 +00:00
Olivier Teulière
eb16fad14b
Remove the wxWidgets interface completely
2008-12-08 21:45:27 +00:00
Olivier Teulière
97157b1716
Save the toolbar visibility from one session to the next
2008-12-08 21:38:12 +00:00
Olivier Teulière
846374e37b
Allow deactivating the warning before replaying a turn
2008-12-08 21:37:02 +00:00
Olivier Teulière
5b1e228fb5
New command to handle the player points, useful to handle the end of a free game
2008-11-30 21:10:25 +00:00
Olivier Teulière
687a31bee8
The AI passes instead of changing letters when it has nothing to play
2008-11-30 21:09:37 +00:00
Olivier Teulière
c4f64c25e1
Improved confirmation dialogs
2008-11-30 21:09:09 +00:00
Olivier Teulière
81b44a8050
- When displaying an old turn, do not allow playing
...
- Turns start at 0 instead of 1, to indicate that nothing was played on the first turn
2008-11-30 21:08:29 +00:00
Olivier Teulière
06dd7dff71
Removed Game::back()
2008-11-30 21:07:19 +00:00
Olivier Teulière
67306bec3e
Added auto-execution of commands when clearing future commands.
...
The goal is to automatically replay commands involving AI, so that the user cannot be 'blocked'.
2008-11-30 20:55:45 +00:00
Olivier Teulière
59345dbbdf
Fixed a crash when creating 2 games in the same session
2008-11-30 20:54:57 +00:00
Olivier Teulière
f6d7804847
- New PublicGame class, intended to be used by the interfaces instead of accessing Game directly
...
- Migrated the text, Qt and ncurses interfaces to the new PublicGame API.
2008-11-30 20:53:44 +00:00
Olivier Teulière
d4f4646b4f
Get rid of Duplicate::prevHumanPlayer() and Duplicate::nextHumanPlayer() + cosmetics
2008-11-30 20:51:42 +00:00
Olivier Teulière
a79b71f028
When navigating in the history, display the current turn in the status bar
2008-11-30 20:51:05 +00:00
Olivier Teulière
fb4ea0e559
- The actions on the game history are now available in the menu and the toolbar
...
- The toolbar can be shown/hidden via a menu entry
- Added icons for all the history actions
- Ask for confirmation before replaying a turn
2008-11-29 16:40:59 +00:00
Olivier Teulière
c430d712b8
Improved debugging
2008-11-23 20:13:02 +00:00
Olivier Teulière
f3b4930dbe
New test for a duplicate game where the only valid move in one turn scores 0 point
2008-11-23 18:56:49 +00:00
Olivier Teulière
1f99311d51
- Allow changing a setting from the text interface
...
- Force a setting in one unit test to be sure of the test outcome
2008-11-23 18:18:59 +00:00
Olivier Teulière
13f2e8daad
- Really fixed duplicate games when noone plays a valid move
...
- Added a unit test to ensure it
- Fixed Game::back() (this fixes some unit tests broken by a previous commit)
- Added a unit test for a duplicate game with only one player
2008-11-23 18:18:02 +00:00
Olivier Teulière
fa225881c0
Do not allow navigating before the first turn, and do not count an empty turn as a real one when navigating.
...
The navigation in the history is now more natural.
2008-11-23 17:08:12 +00:00
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
e8cd922186
New Duplicate::MarkPlayedCmd command to change the "hasPlayed" status of a player, in duplicate mode
2008-11-23 17:06:44 +00:00
Olivier Teulière
9dc84ed963
- Duplicate: end turns after defining the new rack, not before
...
- FreeGame: create an additional turn after defining the initial rack
2008-11-23 17:05:13 +00:00
Olivier Teulière
b5c63ea6e3
Removed the useless return value of Game::start()
2008-11-23 17:04:40 +00:00
Olivier Teulière
40d25bd63a
Handle the case when all players play an invalid move
2008-11-23 17:03:29 +00:00
Olivier Teulière
53cccd529e
Added toString() methods to the commands to ease debugging
2008-11-23 17:02:33 +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
9e330cf83b
In the text interface, display the seed used for the random number generator
2008-11-23 08:33:16 +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
4b766d2622
- Bumped version to 1.8-cvs
...
- Improved the error message when the dictionary cannot be loaded at startup
- Updated the french translation
- Made some Game fields private
- Added more constness
2008-11-22 14:40:25 +00:00
Olivier Teulière
66538b4806
Removed support for the old dictionary format. The code becomes simpler and (very slightly) faster.
2008-11-22 13:11:48 +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
5ea1ec4215
Write a message in the status bar when a search is on going (training mode)
2008-11-04 21:31:13 +00:00