diff options
author | John Fultz <jfultz@wolfram.com> | 2016-07-07 11:32:02 -0500 |
---|---|---|
committer | John Fultz <jfultz@wolfram.com> | 2016-07-07 11:44:45 -0500 |
commit | e1592dfbc6972dda664d7e1a3c208a9921691149 (patch) | |
tree | 0307551e3d0fac2702c5e7c0fb488bba02f97cb6 /preendgame.cpp | |
parent | 3d46663b8d7221ee84c656715d18cfbdc28a0e85 (diff) |
Fix problems entering games with unknown racks.
If you're entering games with unknown racks, Quackle can
get confused about which player has how many tiles in the
end game. This is because the racks may have been set to
have less than 7 tiles, and some of the tiles "in the bag" may
actually belong on another player's rack. Fixed this by...
* Adding a mechanism which tracks the actual count of
tiles in the bag and on the rack in GamePosition. This
count is independent of what's actually on the rack.
* If the game is about to end because the bag and rack
are empty, check to see if the rack *should* have been
empty. If not, pull tiles from another player's rack.
This code might fail for games of more than two players.
* If the game should be ending because the bag and
rack are empty, but the rack isn't actually empty, then
dump the files to another player's rack. Once again,
this code doesn't take into account >2 players.
Diffstat (limited to 'preendgame.cpp')
-rw-r--r-- | preendgame.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/preendgame.cpp b/preendgame.cpp index 227598f..fe9a356 100644 --- a/preendgame.cpp +++ b/preendgame.cpp @@ -167,7 +167,7 @@ MoveList Preendgame::moves(int nmoves) tempPosition.setOppRack((*it).rack); tempPosition.setMoveMade(*moveIt); - tempPosition.incrementTurn(); + tempPosition.incrementTurn(NULL); tempPosition.makeMove(*moveIt); //tempPosition.incrementNestedness(); |