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
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
Antoine Fraboulet
70041c80b3
- extra debug output command for board cross info
2006-11-05 13:27:49 +00:00
Antoine Fraboulet
6f00463fa1
- removed game loading commands in mode loops
...
- add game loading in main loop
- changed stderr to stdout for incorrect words during gameplay
2006-08-11 22:06:53 +00:00
Olivier Teulière
1e13d6bfad
Release memory properly at exit, and fixed a new/free mismatch
2006-01-29 12:40:49 +00:00
Olivier Teulière
77be2e9219
Backport of the 'multibyte' branch on HEAD.
2006-01-22 12:23:52 +00:00
Antoine Fraboulet
30d6cc0687
- eliottxt.cpp
...
add "a P" command for standard format printout
add regexp testing
add performance testing
2006-01-01 19:32:44 +00:00
Antoine Fraboulet
240d106a9d
- correct comment, removing loading game from training mode
2005-12-27 09:23:08 +00:00
Antoine Fraboulet
1a69bd0fa9
- correct help message for training mode
2005-12-27 00:30:56 +00:00
Antoine Fraboulet
41e90acadc
- use of History class
2005-12-26 23:35:03 +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
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
b4e66f273e
Use the readline library in the text interface. In particular, it provides
...
a history of commands
2005-04-27 17:55:32 +00:00
Olivier Teulière
48d111adca
Ability to specify the random seed on command-line.
2005-04-10 12:15:40 +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