Commit graph

31 commits

Author SHA1 Message Date
Olivier Teulière
30385abe30 Results: new MasterResults implementation, using the MoveSelector class.
This avoids calling MoveSelector everywhere in the code.
2013-01-19 00:36:07 +01:00
Olivier Teulière
664eec36ed New MoveSelector class, to help find the "best" move to play.
The best move has the highest possible score, but it is also the one
leading to the most interesting game. This is a subjective notion, but
some heuristics can help, such as:
 - a move sparing a blank is better than one using it
 - a move with many prefixes and suffixes is better than one without
   extensions
 - a move "opening" the game is better than one blocking it
 - a move leaving a nice rack is better than one leaving "bad" letters

At the moment, only the first heuristic is implemented.
2013-01-16 19:00:01 +01:00
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
ace75af580 Arbitration: make the shortcuts for assignments translatable 2013-01-16 00:21:51 +01:00
Olivier Teulière
ab14c9a949 Arbitration: rename a few methods 2013-01-16 00:21:42 +01:00
Olivier Teulière
9ad9b02d57 Arbitration: always show the context menu entry to assign the selected move.
Even if no move is selected, it can help the user to become aware of the
keyboard shortcuts.
2013-01-15 20:13:47 +01:00
Olivier Teulière
e4338547e5 Arbitration: use a standard shorcut to select all the players 2013-01-15 20:00:03 +01:00
Olivier Teulière
820cd1509c Remove all uses of KeyEventFilter.
Use the standard QShortcut instead (possibly combined with a
QSignalMapper).
2013-01-15 19:51:27 +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
50a2ab7996 Arbitration: disable solo-related actions when automatic handling is active 2012-12-06 00:11:07 +01:00
Olivier Teulière
63c7128d3e Arbitration: display the solos, warnings and penalties in the players view 2012-11-13 12:38:27 +01:00
Olivier Teulière
ca5c6cff0d Do not use Qt auto-connect feature 2012-10-06 17:49:36 +02:00
Olivier Teulière
65ed44d66d Cosmetics 2012-10-06 17:49:35 +02:00
Olivier Teulière
f4b78e09b1 Arbitration: restore properly the focused player 2012-10-05 16:10:41 +02:00
Olivier Teulière
56028c8651 Arbitration: new popup menu entry to suppress an assigned move 2012-10-05 16:10:41 +02:00
Olivier Teulière
a800863c1f Arbitration: do not handle solos automatically.
The arbitrator has to specify them manually. Otherwise, we cannot know
when a turn is complete and thus we cannot determine if solos can/should
be applied.
2012-10-05 12:52:42 +02:00
Olivier Teulière
bcc2aedbff Improve the detection of finished games for duplicate and arbitration modes 2012-10-05 01:42:46 +02:00
Olivier Teulière
ed152a380d Arbitration: correctly set the state of buttons for past turns 2012-10-05 00:27:34 +02:00
Olivier Teulière
6ec9568020 Arbitration: better label for a popup menu entry 2012-10-05 00:27:10 +02:00
Olivier Teulière
2b6b85cce3 Arbitration: allow removing penalties 2012-05-20 22:12:42 +02:00
Olivier Teulière
f7a7eab3a3 Arbitration: when a player is selected, automatically switch to the corresponding history tab 2012-05-06 23:23:52 +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
4b4b715a41 New options to desactivate the confirmation dialogs, and rework of the preferences window. 2012-04-29 01:58:43 +02:00
Olivier Teulière
e87018a583 Arbitration: the "Points" column was mistakenly hidden in the players table 2012-04-28 15:34:38 +02:00
Olivier Teulière
7e37cde0c0 Arbitration: after the end of turn, give the focus to the rack and select all the letters 2012-04-10 08:51:12 +02:00
Olivier Teulière
537d00714b Arbitration: allow selecting all the players directly from the players/results tables 2012-04-10 08:51:12 +02:00
Olivier Teulière
4fe2cf3469 Arbitration: really treat the "No move" pseudo-move as if the player had not played 2012-04-08 20:57:47 +02:00
Olivier Teulière
bcd3f73e62 Arbitration: "No move" is now named "Suppress move" 2012-04-08 20:57:46 +02:00
Olivier Teulière
2f7c09ec83 Arbitration: do not consider the "No move" move as a real move assignment 2012-04-08 20:57:46 +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
82b5694a59 Split the ArbitrationWidget class into 2 classes, to keep the code manageable 2012-03-26 07:49:25 +02:00