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
83bf9d8b37
Check the mandatory options in the command-line, to output a better error
...
message
2005-10-23 16:12:29 +00:00
Olivier Teulière
e3bc46b114
Updated licence text with FSF's new address.
2005-10-23 14:53:42 +00:00
Antoine Fraboulet
6626d0ee8c
Game history class, will be used for games and players
2005-08-15 22:20:20 +00:00
Antoine Fraboulet
b4e52e47cc
Eliot coordicate system
2005-08-15 18:14:52 +00:00
Antoine Fraboulet
3f438199a9
A turn is a tuple (Num,Player,PlayedRack,Round)
2005-08-15 18:13:57 +00:00
Olivier Teulière
eccb1ca5bb
Pass argument by reference to avoid a copy
2005-04-20 20:58:51 +00:00
Olivier Teulière
1895268549
Simplification; this should fix the compilation problem with gcc 3.4
2005-04-20 18:52:39 +00:00
Antoine Fraboulet
1077565ace
added toCode() function that should clarify the interface with the
...
dictionary. This function should be used wherever it applies to get
the internal dictionnary code that match the Tile.
2005-04-19 16:24:32 +00:00
Antoine Fraboulet
0d69751dfb
"int getNCharInBag(char) const" changed to "int getNCharInBag(Tile) const;"
2005-04-19 16:23:04 +00:00
Olivier Teulière
25304bd978
test/*: Added non-regression tests, based on the text interface.
...
'regression.pl' is the script that runs the regression, and 'drivers' contains
the list of scenario files to be played.
By default, the complete regerssion is played, but you can play specific
scenarios by adding them to the command-line.
Example: ./regression.pl training_bag freegame_change
2005-04-16 15:47:59 +00:00
Olivier Teulière
b16b969406
When the letters to change are incorrect, do not end the turn for the player
2005-04-16 15:43:14 +00:00
Antoine Fraboulet
76178efe99
getPlayerRack display option added
2005-04-09 16:11:04 +00:00
Antoine Fraboulet
96e94a6be3
getPlayerRack display option added + Game::back() error return
2005-04-09 16:10:25 +00:00
Antoine Fraboulet
5e08e1cf6a
manually entered racks can be lowercase or uppercase
2005-04-09 15:14:00 +00:00
Antoine Fraboulet
aa828e1f8e
int -> unsigned int return values (count and points)
2005-04-09 14:58:24 +00:00
Antoine Fraboulet
8ed5045d75
minor modifications
2005-04-09 14:56:03 +00:00
Olivier Teulière
6b025b9541
- Several fixes in the build system
...
- Added a bootstrap script to reduce manual work
- Added a --enable-debug configure switch to define the DEBUG variable
2005-04-03 21:12:03 +00:00
Olivier Teulière
b65c045cfe
Removed Game::getCurrentRack(), since Game::getPlayerRack() does exactly the
...
same...
2005-04-02 21:21:30 +00:00
Olivier Teulière
016aa2e4fe
Cross::m_tilesSet is now private
2005-04-02 21:03:45 +00:00
Olivier Teulière
daeb2cb228
Fixed a nasty bug when playing a joker game.
2005-04-02 20:46:42 +00:00
Olivier Teulière
f38e884d31
Simplification
2005-04-02 18:21:24 +00:00
Olivier Teulière
ce71e10aef
Fixed a comment and made PlayedRack::toString() a const method
2005-04-02 18:05:21 +00:00
Olivier Teulière
383548a799
Fixed compilation of Board::checkDouble() in debug mode (the == operator was
...
missing for Cross objects)
2005-04-02 17:59:07 +00:00
Antoine Fraboulet
08f15f9fe7
checkDouble does not work un debug mode, don't know why (Matrix[][] does not resolve to template type ?)
2005-03-29 06:58:23 +00:00
Antoine Fraboulet
ebe08e3d6e
add a getCurrentRack for display purpose
2005-03-29 06:56:06 +00:00
Antoine Fraboulet
ae729ca8ae
add toString method for PlayedRack text display
2005-03-29 06:54:08 +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
4dcc22f27a
Added comments on what we should do, according to the rules in he ODS
2005-03-28 15:23:55 +00:00
Olivier Teulière
178560bc63
Repaired handling of changing letters
2005-03-28 14:55:27 +00:00
Olivier Teulière
bd07fedf18
Fixed a stupid bug i just introduced
2005-03-27 22:08:31 +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
f45fd22c16
The game mode and the players are nod hardcoded anymore in the ncurses
...
interface: they can be entered with the command-line (parsed using getopt).
The text interface does not benefit from this facility yet.
2005-03-03 22:14:41 +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
222d1989a2
Cosmetics
2005-02-13 17:14:31 +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
Olivier Teulière
f8074f5e02
Forgot these files
2004-08-07 18:25:03 +00:00
Olivier Teulière
b102aafbcd
Support for 3 different game modes:
...
- 'Training' mode: same behaviour as before
- 'Duplicate' mode: all the players (who can be human players or AI
players) have the same rack, and the best word is played on the
board
- 'Free game' mode: the players (human or AI) have different racks,
and they play one after another
Status:
- Core: the main functions are written, but the API could be more
homogeneous between the different modes.
- Interfaces: the text interface is almost up-to-date, but the
wxwindows one only supports Training mode.
- AI: Currently, AI players always play the best word, which is
optimal in Duplicate mode but not in FreeGame mode. Other strategies
will be written in the future.
- Handling of saved games is broken: a game can be saved and loaded,
but no information about the mode and the players is stored, so it
crashes whatever you do after loading the game.
2004-08-07 18:10:42 +00:00
Olivier Teulière
acd1aa0f1b
Added .cvsignore files
2004-07-08 18:17:31 +00:00
Olivier Teulière
ac04544f70
Increased PLAYEDRACK_MAX, to avoid a crash when too many words were
...
played in a game
2004-07-04 18:50:30 +00:00
Antoine Fraboulet
90b1affcef
*** empty log message ***
2004-04-08 09:43:06 +00:00