From: Bill R. <ro...@gm...> - 2011-09-21 08:40:01
|
In an 1856 game I'm playing we've uncovered a bug. In an 1830-style private auction when all players pass causing the price of the initial item to be reduced, the turn is not advanced to the next player. In particular, the following is an except from our game log: ================ Start of initial round ================ Juho has the Priority Deal Juho bids $75 on Ship. Remaining free cash $175. Peter bids $105 on Brdg. Remaining free cash $145. Jerry bids $45 on W&SR. Remaining free cash $205. Bill bids $80 on Ship. Remaining free cash $170. Aliza bids $55 on TCC. Remaining free cash $195. Carlos bids $110 on Brdg. Remaining free cash $140. Juho bids $50 on W&SR. Remaining free cash $125. Peter passes. Jerry passes. Bill passes. Aliza passes. Carlos passes. Juho passes. All players have passed. Price of Flos is now reduced to $15 Juho passes. From our reading of the rules, Juho shouldn't be offered the Flos at $15 -- this should be Peter's turn. I'm able to reproduce this bug in test games of 1830, and so I suspect that it is present in any game implementing an 1830-style private auction. I've attached a patch that should fix this. Note that this patch will break savegame compatibility for any game where this bug has occurred: Rails will complain when loading the above file that Juho's second pass in invalid. I don't know how widespread this bug is in the wild and if it is worth writing code to allow old savegames that have run into this bug to be loaded. The patches: the first (00001...) is in git format from the command line, which I think Brett likes., and the second (bug+fix...) is in egit format which I think Erik likes. Both patches should be identical. The fix is simply to call setNextPlayer() after reducing the price of the first item. Bill |