Olivier Teulière
927c1cedd1
Text interface: improve slightly the topping mode
2013-01-19 00:53:37 +01:00
Olivier Teulière
f1c2d3951d
GameFactory: remove the useless releaseGame() method
2012-12-30 16:38:07 +01:00
Olivier Teulière
681a7b28cb
New topping mode (very beginning)
2012-12-29 17:51:16 +01:00
Olivier Teulière
3fc1b51f6b
GameIO: remove a useless parameter
2012-12-29 17:46:14 +01:00
Olivier Teulière
8858c54656
Minor cosmetics changes (more C++-like)
2012-10-24 15:23:59 +02:00
Olivier Teulière
4200e33c17
Change the copyright years for all the files modified in 2012
2012-10-11 13:45:24 +02:00
Olivier Teulière
8b0c3327e7
Tests: ignore commands starting with "# "
2012-10-05 20:37:44 +02:00
Olivier Teulière
2b6b85cce3
Arbitration: allow removing penalties
2012-05-20 22:12:42 +02:00
Olivier Teulière
0095302b88
Use dedicated getters for the Move type: this is simpler to use and more readable
2012-05-05 19:45:44 +02:00
Olivier Teulière
36bfa92761
Arbitration: a few fixes to improve usage of the text interface
2012-04-28 15:34:37 +02:00
Olivier Teulière
f3f2d916bb
Fixed a few memory leaks
2012-04-28 15:34:37 +02:00
Olivier Teulière
bd8678f147
Text interface: removed useless display methods
2012-04-11 20:02:18 +02:00
Olivier Teulière
fd1773ef6e
Text interface: correctly check the return value when passing
2012-04-11 20:02:18 +02:00
Olivier Teulière
5bb492ceb4
Text interface: simplified the parsing code
2012-04-11 20:02:18 +02:00
Olivier Teulière
a1e06317f0
Text interface: basic support for the arbitration mode
2012-04-11 20:02:18 +02:00
Olivier Teulière
05a51101db
New arbitration mode, dedicate to arbitration of duplicate games.
...
It is mostly working, but many things are still missing.
In particular:
- ability to enter (or change) moves for a past turn
- ability to change the rack (manually, or randomly)
- ability to add/remove players during the game
- support for solos, warnings, penalties
- support for table number
- more ergonomic interface
- non regression tests
- ... and probably bugs to fix
2012-03-10 18:06:41 +01:00
Olivier Teulière
9aea22d968
Use an enum for the variants
2011-08-28 19:25:26 +02:00
Olivier Teulière
56b66fea28
Added setters to GameParams, to simplify the code a little
2011-08-28 19:25:26 +02:00
Olivier Teulière
17bdd27899
Moved the dictionary to the GameParams class
2011-08-28 19:25:26 +02:00
Olivier Teulière
408c92df42
Moved the game mode to the GameParams class
2011-08-28 19:25:26 +02:00
Olivier Teulière
3d48facb55
Cosmetics
2011-08-28 19:25:26 +02:00
Olivier Teulière
d6fbd6bef1
Allow combining several variants in a single game
2011-08-28 18:47:25 +02:00
Olivier Teulière
336a5a6111
eliottxt.cpp is now encoded in UTF-8
2011-08-28 15:06:15 +02:00
Olivier Teulière
4aa7c1a548
Support the "7 among 8 variant" in the text interface
2011-08-28 14:51:56 +02:00
Olivier Teulière
fdc29871e5
New GameParams class to wrap a few game characteristics.
...
These characteristics will not change during the game.
2011-08-27 21:55:49 +02:00
Olivier Teulière
cfa88072a3
Replace the use of convertToMb() and convertToWc() with macros
2011-07-30 19:48:05 +00:00
Olivier Teulière
dd44196d21
Renamed _wtoi into wtoi to avoid a name collision with mingw32 headers
2010-05-20 20:27:47 +00:00
Olivier Teulière
f2e3e64bc0
Compilation fix (needed to build on Mac)
2010-01-28 22:25:51 +00:00
Olivier Teulière
c878573183
Improved the handling of errors in the text interface
2010-01-01 17:59:39 +00:00
Olivier Teulière
3c7a84d543
Support saving/loading games (any game type) in XML format.
...
Status:
It works well, but there are still a few details to improve/fix
More details about the changes:
- New dependency on Arabica and Libxml2 to parse the XML
- Loading the old format is still supported for this release, but won't be supported anymore in the next one
- Games are now only saved in the new format
- In training mode, the player is now created externally, like in the other modes
- Avoid using GameIO (the one from game/) whenever possible
- Do not use a FILE* argument anymore when loading a game
- Throw and catch exceptions correctly when a game cannot be loaded or saved
- The non-regression tests now use a new method to print the game history
2009-11-29 16:01:31 +00:00
Olivier Teulière
43d42a0388
Little hack to have the 7+1 search in alphabetical order (or more precisely, in the order of the letters as defined at dictionary creation)
2009-09-21 20:10:34 +00:00
Olivier Teulière
02e4cb2970
- Invalid moves should be in the display form
...
- Moved some code from Header to Dictionary
2009-07-03 21:40:14 +00:00
Olivier Teulière
da85bde477
First step in accepting various input strings for the same tile: input coming from the text interface is now passed through a conversion method (... which does nothing yet!)
2009-06-23 21:39:07 +00:00
Olivier Teulière
7569a58bb7
Each letter (tile) now has a display string, defaulting to its internal char. It is not yet possible to change it.
...
This display string is used in the ncurses and Qt interfaces.
Display strings are types "wdstring" instead of plain "wstring" in a few places (not all of them) to help recognize them.
2009-06-23 12:41:53 +00:00
Olivier Teulière
6f9a343677
- Fixed the previous fix for joker games, for real this time
...
- Added tests for joker and explosive games in all modes
2009-02-21 16:56:32 +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
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
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
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
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
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
90badeca21
- Fixed a bug in the parser, preventing to parse correctly some regular expressions with wide chars. The regular expressions seem now to work fine with a dictionary using polish words.
...
- More C++ in the automaton code
- Simplified the code in several places
2008-07-27 13:32:47 +00:00
Olivier Teulière
11adaba410
- Added several tests for the regular expressions engine
...
- 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.
2008-07-07 17:29:59 +00:00
Olivier Teulière
414baa8d7a
- Use vectors instead of lists to store the results of dictionary searches
...
- New parameter to most search functions, allowing to limit the number of results.
No interface uses it yet.
2008-03-02 18:45:10 +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