Commit graph

353 commits

Author SHA1 Message Date
Olivier Teulière
1e0de63ef8 Results: add a isEmpty() method, and use it where possible 2013-01-16 11:15:12 +01:00
Olivier Teulière
89b5f757ca Topping: do not assign an empty move to the player immediately.
It is now done only after a timeout, to avoid the need to replace
this empty move when the player finds a top move.
2013-01-15 11:43:30 +01:00
Olivier Teulière
ec0cfb47fa Topping: add a preference to set the penalty value in case of timeout 2013-01-14 17:13:48 +01:00
Olivier Teulière
7e9dab2e9b Topping: keep track of the player score 2013-01-14 17:13:48 +01:00
Olivier Teulière
2db1732f7a Board: allow one more type of invalid word when previewing a played word 2013-01-11 11:06:56 +01:00
Olivier Teulière
4111afc04c RackWidget: after a drag & drop, notify the game that the rack has changed.
This allows synchronizing all the controls displaying the player rack
(visual and textual ones).
2013-01-09 18:56:25 +01:00
Olivier Teulière
7a6ca367fb Game: remove a TODO 2013-01-09 18:52:11 +01:00
Olivier Teulière
0cdc2b7ab4 Rack: add operator==() 2013-01-09 18:52:11 +01:00
Olivier Teulière
7cd6313dac Topping: integrate hints 2013-01-08 16:04:24 +01:00
Olivier Teulière
b5d175fc5b Topping: use a different method to play the move.
This allows providing additional time information
2013-01-08 16:04:23 +01:00
Olivier Teulière
3f19d6ae49 Hints system, to retrieve partial information about a Move.
This is only the core part, no interface integration is done yet.
2013-01-08 16:04:23 +01:00
Olivier Teulière
fcb9fa572a Game: make the constructor protected, to make the design clearer 2013-01-08 15:55:59 +01:00
Olivier Teulière
f1c2d3951d GameFactory: remove the useless releaseGame() method 2012-12-30 16:38:07 +01:00
Olivier Teulière
76fefdf71d New "master game" feature.
When a master game is defined, the racks and moves played from the
current game will be the same as in the master game. This can be
practical to replay a game in a different mode, or to replay at home a
duplicate game played in a club, for example.
2012-12-30 16:38:07 +01:00
Olivier Teulière
86ed14f75e Move: add operator==() 2012-12-30 16:13:45 +01:00
Olivier Teulière
62d46c875f Round: add operator==() 2012-12-30 16:13:31 +01:00
Olivier Teulière
ac0abba535 Topping: new widget dedicated to topping mode.
It is currently very ugly, and quite buggy...
2012-12-29 19:36:38 +01:00
Olivier Teulière
57a2c0690f Topping: keep track of all the moves played by the player.
The timing information is currently not used at all.
2012-12-29 17:51:52 +01:00
Olivier Teulière
681a7b28cb New topping mode (very beginning) 2012-12-29 17:51:16 +01:00
Olivier Teulière
5441007db1 New BoardLayout class to wrap the board layout (size and special squares).
Until now there is no user-visible change, but it should make it much
easier to add custom layouts.
2012-12-29 17:50:18 +01:00
Olivier Teulière
c138947138 Move Duplicate::setGameAndPlayersRack() to Game 2012-12-29 17:49:25 +01:00
Olivier Teulière
fb8e464d7c Display the word being played on the board 2012-12-29 17:46:18 +01:00
Olivier Teulière
2c3cb83e0a Allow more types of invalid input when previewing a move being played 2012-12-29 17:46:18 +01:00
Olivier Teulière
8d85df630b PlayModel now uses a Move internally 2012-12-29 17:46:18 +01:00
Olivier Teulière
8acebbc889 Game::checkPlayedWord() now takes a Move instead of a Round 2012-12-29 17:46:18 +01:00
Olivier Teulière
dc3535c953 Coord: do not refuse lowercase coordinates.
It fixes a regression introduced in bedcc56.
2012-12-29 17:46:17 +01:00
Olivier Teulière
d55b3b2bdf Use toLower() and toUpper() 2012-12-29 17:46:17 +01:00
Olivier Teulière
05605a63ae Coord: remove useless code 2012-12-29 17:46:17 +01:00
Olivier Teulière
0097519e96 Turn: new findAllMatchingCmd() utility method 2012-12-29 17:44:39 +01:00
Olivier Teulière
bedcc561f3 Coord: do not accept invalid strings starting with valid coordinates 2012-12-18 16:03:44 +01:00
Olivier Teulière
19a93988ad Arbitration: new option to handle solos automatically.
The option is not yet accessible from the interface.
2012-12-05 23:56:20 +01:00
Olivier Teulière
4d38c99336 Move Arbitration::getPlayerEventCmd() into Duplicate 2012-12-05 22:05:31 +01:00
Olivier Teulière
8b3d6b9872 Use BOOST_FOREACH instead of an index-based loop 2012-12-05 21:23:25 +01:00
Olivier Teulière
e34cc25fe1 Move commands to the game/cmd/ sub-directory.
The abstract Command class (from which all the others inherit)
is still game/, to hide the cmd/ subdir from most clients.
2012-12-05 20:26:47 +01:00
Olivier Teulière
7832866652 Fixed compilation errors with newer g++ versions 2012-11-21 20:16:56 +01:00
Olivier Teulière
81f2507181 Arbitration: fix a bug when a word is checked manually.
The check didn't verify that it is actually possible to play the word
with the current rack.
2012-11-13 12:38:26 +01:00
Olivier Teulière
8858c54656 Minor cosmetics changes (more C++-like) 2012-10-24 15:23:59 +02:00
Olivier Teulière
08c3f2ccb2 Arbitration: when loading a saved game, make PlayerMoveCmd auto-executable.
This is not very clean, but without this the played moves of past turns
are not visible. This commit also fixes a test with was incorrect.
2012-10-24 11:11:24 +02:00
Olivier Teulière
34ed25e9e9 Saved games: save some statistics (not used when loading the game) 2012-10-24 00:32:48 +02:00
Olivier Teulière
c748d02950 Saved games: use the real player ID, not a modified one 2012-10-24 00:32:24 +02:00
Olivier Teulière
cf22315fd0 Saved games: improve an error message to give the context 2012-10-24 00:32:15 +02:00
Olivier Teulière
ef14d5e9d6 Saved games: use camelCase for attribute names 2012-10-24 00:31:51 +02:00
Olivier Teulière
b76f48f545 Save games: save and restore the table numbers 2012-10-22 17:35:29 +02:00
Olivier Teulière
c7831a28bd Do not specify template parameters when it is useless 2012-10-13 00:50:44 +02:00
Olivier Teulière
f6ced69c9e Make sure some class members are initialized (bugs reported by Coverity) 2012-10-11 23:21:32 +02:00
Olivier Teulière
0fa1c79563 Add myself to the authors, and fix some copyright headers 2012-10-11 13:45:24 +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
c5591da9e5 Fix various strings 2012-10-06 22:17:43 +02:00
Olivier Teulière
e7aabdc4a2 Fix compilation warnings 2012-10-06 18:45:46 +02:00
Olivier Teulière
b84d112220 I18n of the load/save game exceptions 2012-10-06 18:18:21 +02:00