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
afb45d62c4
Preferences: removed the option to link the rack with the 7+1 dictionary tool
2012-04-28 15:34:36 +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
d6a2fc6e4e
PublicGame: more direct access to the game current rack
2012-03-26 07:49:25 +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
22fd6484f3
Correctly retrieve the game rack
2012-02-25 23:51:30 +01:00
Olivier Teulière
bf42c49850
Added loggers to most classes
2012-02-19 13:07:29 +01:00
Olivier Teulière
c81df46b5e
Added a new type of move: NO_MOVE
2012-01-17 00:56:02 +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
befe577fe7
Got rid of Game::getModeAsString()
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
38f3a456bb
Handle the "7 among 8" variant in a few more places
2011-08-28 15:52:12 +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
0c76b9d781
Simplified the looging macros, and added logs in various key places.
2011-01-29 23:47:20 +00:00
Olivier Teulière
e175a6d8bc
Added a new (optional) dependency on log4cxx, to enable logging.
...
If disabled (the default), everything is compiled away.
2011-01-16 21:30:30 +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
ddfb55593e
Fixed compilation of the ncurses interface on Mac OS X
2010-02-01 21:26:11 +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
2eb28d61c5
Use expat instead of libxml2: it is much smaller, and is easier to use with Arabica when cross-compiling for Windows
2009-12-06 00:07:35 +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
795c44827d
Center correctly multi-chars letters in the text interface
2009-06-23 21:36:33 +00:00
Olivier Teulière
3a82ab75fd
More uses of the display characters
2009-06-23 13:21:19 +00:00
Olivier Teulière
47e4b8c6b0
Simplifications
2009-06-23 12:56:40 +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
8f72fd8152
- Always display characters in uppercase on the board (a lowercase character was still possible with a joker, in some rare cases)
...
- Fixed a compilation warning
2009-01-26 20:30:41 +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
d4f4646b4f
Get rid of Duplicate::prevHumanPlayer() and Duplicate::nextHumanPlayer() + cosmetics
2008-11-30 20:51:42 +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