From: Bill R. <ro...@gm...> - 2011-11-08 14:45:20
Attachments:
18EU_startround_forced-pass.rails
|
Erik, As far as I can tell, a bug was introduced in commit 1893c3 that makes the 18EU minor auction unplayable in certain circumstances. This is the commit with message: "In 1835 Start Round, removed popups that reported forced passes. Also removed some redundant/ineffective code." Specifically, I think the problem occurs whenever a player is forced to pass in an auction due to a lack of funds. It seems like the 18EU Starting Round depended on exactly how forced-passes were being implemented. In the attached savegame, Carol has spent all of her money and so must pass on the minor being auctioned, but instead of this happening, the Starting Round window vanishes and Rails becomes non-functional. Digging further, the commented out code on lines 897-9 of rails/GameManager.java seems to be the source of this behaviour. Uncommenting it (as well as the function it calls in PossibleActions) fixes 18EU, but it presumably will cause breakage elsewhere. I suspect that StartRound_18EU.java has somehow become obsolete, but after spending a while going through the various StartRound and GameManager classes, I can't find the problem. Bill |
From: Stefan F. <ste...@we...> - 2011-11-08 15:08:02
|
Bill, I will respond on behave and in addition to Erik (see below). It seems that Erik thought at that time of his bug fix that the code for automatic passes was out of date/ineffective and simply commented it out. However this is something that I introduced because of a feature request especially for those occasions in 18EU. It took me some time to fix side- effects that the next player was not chosen in the correct sequence after an automatic pass. I considered the 18EU StartRound to be quite a beast ;-) (please no offense taken - Erik). This did not occur for the standard StartRound (1830 style). I cannot remember if I have checked 1835 StartRound at that time. Unfortunately this is a UI function and thus cannot be tested by the current automatic game tests. My preferred solution is to fix that by uncommenting the code and publish a new Release 1.5.3, but I want Erik's opinion first, if this has any impact on 1835 or other games. Stefan On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > Erik, > > As far as I can tell, a bug was introduced in commit 1893c3 that makes the > 18EU minor auction unplayable in certain circumstances. This is the > commit with message: "In 1835 Start Round, removed popups that reported > forced passes. Also removed some redundant/ineffective code." > Specifically, I think the problem occurs whenever a player is forced to > pass in an auction due to a lack of funds. > > It seems like the 18EU Starting Round depended on exactly how forced-passes > were being implemented. In the attached savegame, Carol has spent all of > her money and so must pass on the minor being auctioned, but instead of > this happening, the Starting Round window vanishes and Rails becomes > non-functional. > > Digging further, the commented out code on lines 897-9 of > rails/GameManager.java seems to be the source of this behaviour. > Uncommenting it (as well as the function it calls in PossibleActions) > fixes 18EU, but it presumably will cause breakage elsewhere. I suspect > that StartRound_18EU.java has somehow become obsolete, but after spending > a while going through the various StartRound and GameManager classes, I > can't find the problem. > > Bill |
From: <Dr....@t-...> - 2011-11-08 17:50:56
|
Hi Stefan, it probably will effect all games that have an Bid Mechanismus aside from the normal Startround Behaviour. I'll recheck the behaviour for 1880 on Thursday as i am traveling right now and dont have access to the code. Regards, Martin Von: Stefan Frey <ste...@we...> An: "Development list for Rails: an 18xx game" <rai...@li...> Betreff: Re: [Rails-devel] 18EU bug in 1.5.2 Datum: Tue, 08 Nov 2011 16:10:45 +0100 Bill, I will respond on behave and in addition to Erik (see below). It seems that Erik thought at that time of his bug fix that the code for automatic passes was out of date/ineffective and simply commented it out. However this is something that I introduced because of a feature request especially for those occasions in 18EU. It took me some time to fix side- effects that the next player was not chosen in the correct sequence after an automatic pass. I considered the 18EU StartRound to be quite a beast ;-) (please no offense taken - Erik). This did not occur for the standard StartRound (1830 style). I cannot remember if I have checked 1835 StartRound at that time. Unfortunately this is a UI function and thus cannot be tested by the current automatic game tests. My preferred solution is to fix that by uncommenting the code and publish a new Release 1.5.3, but I want Erik's opinion first, if this has any impact on 1835 or other games. Stefan On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > Erik, > > As far as I can tell, a bug was introduced in commit 1893c3 that makes the > 18EU minor auction unplayable in certain circumstances. This is the > commit with message: "In 1835 Start Round, removed popups that reported > forced passes. Also removed some redundant/ineffective code." > Specifically, I think the problem occurs whenever a player is forced to > pass in an auction due to a lack of funds. > > It seems like the 18EU Starting Round depended on exactly how forced-passes > were being implemented. In the attached savegame, Carol has spent all of > her money and so must pass on the minor being auctioned, but instead of > this happening, the Starting Round window vanishes and Rails becomes > non-functional. > > Digging further, the commented out code on lines 897-9 of > rails/GameManager.java seems to be the source of this behaviour. > Uncommenting it (as well as the function it calls in PossibleActions) > fixes 18EU, but it presumably will cause breakage elsewhere. I suspect > that StartRound_18EU.java has somehow become obsolete, but after spending > a while going through the various StartRound and GameManager classes, I > can't find the problem. > > Bill ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ Rails-devel mailing list Rai...@li... https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Erik V. <eri...@xs...> - 2011-11-08 21:07:14
|
IIRC, the problem was that, although it might do some good for StartRounds, it did break some StockRounds. For all I know, in StockRounds passing is only automatic if Autopass is set. Feel free to try it out, but in any case I would like to do additional testing before it is released. Such a change may (and I fear, will) have side effects. Erik. > -----Original Message----- > From: Stefan Frey [mailto:ste...@we...] > Sent: Tuesday, November 08, 2011 4:11 PM > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > Bill, > I will respond on behave and in addition to Erik (see below). > > It seems that Erik thought at that time of his bug fix that the code for > automatic passes was out of date/ineffective and simply commented it out. > > However this is something that I introduced because of a feature request > especially for those occasions in 18EU. It took me some time to fix side- > effects that the next player was not chosen in the correct sequence after an > automatic pass. I considered the 18EU StartRound to be quite a beast ;-) > (please no offense taken - Erik). > > This did not occur for the standard StartRound (1830 style). I cannot > remember if I have checked 1835 StartRound at that time. > > Unfortunately this is a UI function and thus cannot be tested by the current > automatic game tests. > > My preferred solution is to fix that by uncommenting the code and publish a > new Release 1.5.3, but I want Erik's opinion first, if this has any impact on > 1835 or other games. > > Stefan > > > On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > > Erik, > > > > As far as I can tell, a bug was introduced in commit 1893c3 that makes > > the 18EU minor auction unplayable in certain circumstances. This is > > the commit with message: "In 1835 Start Round, removed popups that > > reported forced passes. Also removed some redundant/ineffective code." > > Specifically, I think the problem occurs whenever a player is forced > > to pass in an auction due to a lack of funds. > > > > It seems like the 18EU Starting Round depended on exactly how > > forced-passes were being implemented. In the attached savegame, Carol > > has spent all of her money and so must pass on the minor being > > auctioned, but instead of this happening, the Starting Round window > > vanishes and Rails becomes non-functional. > > > > Digging further, the commented out code on lines 897-9 of > > rails/GameManager.java seems to be the source of this behaviour. > > Uncommenting it (as well as the function it calls in PossibleActions) > > fixes 18EU, but it presumably will cause breakage elsewhere. I > > suspect that StartRound_18EU.java has somehow become obsolete, but > > after spending a while going through the various StartRound and > > GameManager classes, I can't find the problem. > > > > Bill > > ---------------------------------------------------------------------------- -- > RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Stefan F. <ste...@we...> - 2011-11-08 21:51:38
|
Erik: I do not really understand your concerns here: This feature to silently choose the pass action if it is the only available action was implemented on 10/Jul/2010 (Commit 38a485) and released with version 1.4. in August 2010. As there have been no bugs reported so far on the list, I wonder why you consider it likely that it will break some Stock Rounds. Reverting your comments around the code fixes the issue and should not raise any new issues, except that there is a dependency of 1835 on the removal of that code. However from you commit message it seems that you simply thought my code is redundant/obsolete, which was not the case. Stefan I dug up my e-mail that described the changes at the time of the implementation, attached for reference here: The pass option at the beginning of the 18EU minor initial sale round is renamed to "decline to bid" for the first action of each player after the minor selection. After that "pass" is active (implying "decline to buy"). I took the opportunity to implement the long-standing feature-request for an autopass in the 18EU start round: Anytime a player has not enough money to bid or buy, he passes automatically (or declines to bid or declines to increase his bid). Exception is the player after the selection of a minor as the first bid is processed by the user interface instead of the backend. Here the player still has to select NoBid. This fix covers all game situations, where a player has only the option to pass. The other occasion I have tested is the 1830 type StartRound. The general StockRound is not effected (it allows both pass and autopass). And it does not effect those cases, where players/companies have to choose "Done" (e.g. after an action in the StockRound or during ORs). In principle this behavior could be generalized to those occasions above, but it might surprise players if their turn is skipped outside of the StartRounds. The 1835 StartRound has its own autopass method implemented, which has a pop-up message supplied. So far I have not added a pop-up message box. It can be easily added, but this works a little bit against the intention of a game speed up. (Here and in some other occasions it would be nice to have a non-blocking information panel). On Tuesday, November 08, 2011 10:07:01 pm Erik Vos wrote: > IIRC, the problem was that, although it might do some good for StartRounds, > it did break some StockRounds. For all I know, in StockRounds passing is > only automatic if Autopass is set. > > Feel free to try it out, but in any case I would like to do additional > testing before it is released. Such a change may (and I fear, will) have > side effects. > > Erik. > > > -----Original Message----- > > From: Stefan Frey [mailto:ste...@we...] > > Sent: Tuesday, November 08, 2011 4:11 PM > > To: Development list for Rails: an 18xx game > > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > > > Bill, > > I will respond on behave and in addition to Erik (see below). > > > > It seems that Erik thought at that time of his bug fix that the code for > > automatic passes was out of date/ineffective and simply commented it out. > > > > However this is something that I introduced because of a feature request > > especially for those occasions in 18EU. It took me some time to fix side- > > effects that the next player was not chosen in the correct sequence after > > an > > > automatic pass. I considered the 18EU StartRound to be quite a beast ;-) > > (please no offense taken - Erik). > > > > This did not occur for the standard StartRound (1830 style). I cannot > > > > remember if I have checked 1835 StartRound at that time. > > > > Unfortunately this is a UI function and thus cannot be tested by the > > current > > > automatic game tests. > > > > My preferred solution is to fix that by uncommenting the code and publish > > a > > > new Release 1.5.3, but I want Erik's opinion first, if this has any > > impact > > on > > > 1835 or other games. > > > > Stefan > > > > On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > > > Erik, > > > > > > As far as I can tell, a bug was introduced in commit 1893c3 that makes > > > the 18EU minor auction unplayable in certain circumstances. This is > > > the commit with message: "In 1835 Start Round, removed popups that > > > reported forced passes. Also removed some redundant/ineffective code." > > > Specifically, I think the problem occurs whenever a player is forced > > > to pass in an auction due to a lack of funds. > > > > > > It seems like the 18EU Starting Round depended on exactly how > > > forced-passes were being implemented. In the attached savegame, Carol > > > has spent all of her money and so must pass on the minor being > > > auctioned, but instead of this happening, the Starting Round window > > > vanishes and Rails becomes non-functional. > > > > > > Digging further, the commented out code on lines 897-9 of > > > rails/GameManager.java seems to be the source of this behaviour. > > > Uncommenting it (as well as the function it calls in PossibleActions) > > > fixes 18EU, but it presumably will cause breakage elsewhere. I > > > suspect that StartRound_18EU.java has somehow become obsolete, but > > > after spending a while going through the various StartRound and > > > GameManager classes, I can't find the problem. > > > > > > Bill > > --------------------------------------------------------------------------- > - -- > > > RSA(R) Conference 2012 > > Save $700 by Nov 18 > > Register now > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > --------------------------------------------------------------------------- > --- RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Erik V. <eri...@xs...> - 2011-11-08 22:34:09
|
Stefan, The reasons why I removed this code were: 1. I thought it was redundant, but apparently is does something that isn't done elsewhere, so I was wrong. Sorry for that. 2. I understood this code was intended to autopass in start rounds only, but nothing in that code restricts its working to start rounds. I would expect a condition like ' if (getCurrentRound() instanceof StartRound) '. 3. The code claims to check that there is only a Pass in the possible actions, but in fact it only checks that the first action is a Pass. In practice that might be equivalent, at least in the current code, but it creates a dependency that I would rather avoid. What you really mean is: there is a pass and there isn't a bid or buy, i.e. no StartItemAction. Why not implement it that way? Erik. > -----Original Message----- > From: Stefan Frey [mailto:ste...@we...] > Sent: Tuesday, November 08, 2011 10:54 PM > To: Development list for Rails: an 18xx game > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > Erik: > I do not really understand your concerns here: This feature to silently choose > the pass action if it is the only available action was implemented on > 10/Jul/2010 (Commit 38a485) and released with version 1.4. in August 2010. > > As there have been no bugs reported so far on the list, I wonder why you > consider it likely that it will break some Stock Rounds. > > Reverting your comments around the code fixes the issue and should not > raise any new issues, except that there is a dependency of 1835 on the > removal of that code. However from you commit message it seems that you > simply thought my code is redundant/obsolete, which was not the case. > > Stefan > > I dug up my e-mail that described the changes at the time of the > implementation, attached for reference here: > > The pass option at the beginning of the 18EU minor initial sale round is > renamed to "decline to bid" for the first action of each player after the minor > selection. After that "pass" is active (implying "decline to buy"). > > I took the opportunity to implement the long-standing feature-request for > an autopass in the 18EU start round: > Anytime a player has not enough money to bid or buy, he passes > automatically (or declines to bid or declines to increase his bid). > Exception is the player after the selection of a minor as the first bid is > processed by the user interface instead of the backend. Here the player still > has to select NoBid. > > This fix covers all game situations, where a player has only the option to pass. > The other occasion I have tested is the 1830 type StartRound. The general > StockRound is not effected (it allows both pass and autopass). > And it does not effect those cases, where players/companies have to choose > "Done" (e.g. after an action in the StockRound or during ORs). > > In principle this behavior could be generalized to those occasions above, but > it might surprise players if their turn is skipped outside of the StartRounds. > > The 1835 StartRound has its own autopass method implemented, which has a > pop-up message supplied. > So far I have not added a pop-up message box. It can be easily added, but > this works a little bit against the intention of a game speed up. > (Here and in some other occasions it would be nice to have a non-blocking > information panel). > > > > On Tuesday, November 08, 2011 10:07:01 pm Erik Vos wrote: > > IIRC, the problem was that, although it might do some good for > > StartRounds, it did break some StockRounds. For all I know, in > > StockRounds passing is only automatic if Autopass is set. > > > > Feel free to try it out, but in any case I would like to do additional > > testing before it is released. Such a change may (and I fear, will) > > have side effects. > > > > Erik. > > > > > -----Original Message----- > > > From: Stefan Frey [mailto:ste...@we...] > > > Sent: Tuesday, November 08, 2011 4:11 PM > > > To: Development list for Rails: an 18xx game > > > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > > > > > Bill, > > > I will respond on behave and in addition to Erik (see below). > > > > > > It seems that Erik thought at that time of his bug fix that the code > > > for automatic passes was out of date/ineffective and simply commented > it out. > > > > > > However this is something that I introduced because of a feature > > > request especially for those occasions in 18EU. It took me some time > > > to fix side- effects that the next player was not chosen in the > > > correct sequence after > > > > an > > > > > automatic pass. I considered the 18EU StartRound to be quite a beast > > > ;-) (please no offense taken - Erik). > > > > > > This did not occur for the standard StartRound (1830 style). I > > > cannot > > > > > > remember if I have checked 1835 StartRound at that time. > > > > > > Unfortunately this is a UI function and thus cannot be tested by the > > > > current > > > > > automatic game tests. > > > > > > My preferred solution is to fix that by uncommenting the code and > > > publish > > > > a > > > > > new Release 1.5.3, but I want Erik's opinion first, if this has any > > > impact > > > > on > > > > > 1835 or other games. > > > > > > Stefan > > > > > > On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > > > > Erik, > > > > > > > > As far as I can tell, a bug was introduced in commit 1893c3 that > > > > makes the 18EU minor auction unplayable in certain circumstances. > > > > This is the commit with message: "In 1835 Start Round, removed > > > > popups that reported forced passes. Also removed some > redundant/ineffective code." > > > > Specifically, I think the problem occurs whenever a player is > > > > forced to pass in an auction due to a lack of funds. > > > > > > > > It seems like the 18EU Starting Round depended on exactly how > > > > forced-passes were being implemented. In the attached savegame, > > > > Carol has spent all of her money and so must pass on the minor > > > > being auctioned, but instead of this happening, the Starting Round > > > > window vanishes and Rails becomes non-functional. > > > > > > > > Digging further, the commented out code on lines 897-9 of > > > > rails/GameManager.java seems to be the source of this behaviour. > > > > Uncommenting it (as well as the function it calls in > > > > PossibleActions) fixes 18EU, but it presumably will cause breakage > > > > elsewhere. I suspect that StartRound_18EU.java has somehow > become > > > > obsolete, but after spending a while going through the various > > > > StartRound and GameManager classes, I can't find the problem. > > > > > > > > Bill > > > > ---------------------------------------------------------------------- > > ----- > > - -- > > > > > RSA(R) Conference 2012 > > > Save $700 by Nov 18 > > > Register now > > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > > _______________________________________________ > > > Rails-devel mailing list > > > Rai...@li... > > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > ---------------------------------------------------------------------- > > ----- > > --- RSA(R) Conference 2012 > > Save $700 by Nov 18 > > Register now > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > ---------------------------------------------------------------------------- -- > RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Stefan F. <ste...@we...> - 2011-11-08 22:42:53
|
Answers see below. Stefan On Tuesday, November 08, 2011 11:34:01 pm Erik Vos wrote: > Stefan, > > The reasons why I removed this code were: > 1. I thought it was redundant, but apparently is does something that isn't > done elsewhere, so I was wrong. Sorry for that. > 2. I understood this code was intended to autopass in start rounds only, > but nothing in that code restricts its working to start rounds. I would > expect a condition like ' if (getCurrentRound() instanceof StartRound) '. I was undecided if it should cover also other cases. However in all other Rounds it is never the case that the sole action is a pass: In StockRounds there is always the AutoPass action available, in OperatingRounds Pass is never the sole action too (here Skip or Done is used). So pragmatically there was no need for an additional restriction and no one ever commented if it would be nice to extend it to the other cases, so I never followed up. > 3. The code claims to check that there is only a Pass in the possible > actions, but in fact it only checks that the first action is a Pass. In > practice that might be equivalent, at least in the current code, but it > creates a dependency that I would rather avoid. What you really mean is: > there is a pass and there isn't a bid or buy, i.e. no StartItemAction. > Why not implement it that way? Please refer to the implementation inside PossibleAction.containsOnlyPass(): The code checks two conditions: a) There is only one action and b) this action is a pass. If both conditions are true the pass action is selected automatically. > > Erik. > > > -----Original Message----- > > From: Stefan Frey [mailto:ste...@we...] > > Sent: Tuesday, November 08, 2011 10:54 PM > > To: Development list for Rails: an 18xx game > > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > > > Erik: > > I do not really understand your concerns here: This feature to silently > > choose > > > the pass action if it is the only available action was implemented on > > 10/Jul/2010 (Commit 38a485) and released with version 1.4. in August > > 2010. > > > > As there have been no bugs reported so far on the list, I wonder why you > > consider it likely that it will break some Stock Rounds. > > > > Reverting your comments around the code fixes the issue and should not > > raise any new issues, except that there is a dependency of 1835 on the > > removal of that code. However from you commit message it seems that you > > simply thought my code is redundant/obsolete, which was not the case. > > > > Stefan > > > > I dug up my e-mail that described the changes at the time of the > > implementation, attached for reference here: > > > > The pass option at the beginning of the 18EU minor initial sale round is > > renamed to "decline to bid" for the first action of each player after the > > minor > > > selection. After that "pass" is active (implying "decline to buy"). > > > > I took the opportunity to implement the long-standing feature-request for > > an autopass in the 18EU start round: > > Anytime a player has not enough money to bid or buy, he passes > > automatically (or declines to bid or declines to increase his bid). > > Exception is the player after the selection of a minor as the first bid > > is processed by the user interface instead of the backend. Here the > > player > > still > > > has to select NoBid. > > > > This fix covers all game situations, where a player has only the option > > to > > pass. > > > The other occasion I have tested is the 1830 type StartRound. The general > > StockRound is not effected (it allows both pass and autopass). > > And it does not effect those cases, where players/companies have to > > choose "Done" (e.g. after an action in the StockRound or during ORs). > > > > In principle this behavior could be generalized to those occasions above, > > but > > > it might surprise players if their turn is skipped outside of the > > StartRounds. > > > The 1835 StartRound has its own autopass method implemented, which has a > > pop-up message supplied. > > So far I have not added a pop-up message box. It can be easily added, but > > this works a little bit against the intention of a game speed up. > > (Here and in some other occasions it would be nice to have a non-blocking > > information panel). > > > > On Tuesday, November 08, 2011 10:07:01 pm Erik Vos wrote: > > > IIRC, the problem was that, although it might do some good for > > > StartRounds, it did break some StockRounds. For all I know, in > > > StockRounds passing is only automatic if Autopass is set. > > > > > > Feel free to try it out, but in any case I would like to do additional > > > testing before it is released. Such a change may (and I fear, will) > > > have side effects. > > > > > > Erik. > > > > > > > -----Original Message----- > > > > From: Stefan Frey [mailto:ste...@we...] > > > > Sent: Tuesday, November 08, 2011 4:11 PM > > > > To: Development list for Rails: an 18xx game > > > > Subject: Re: [Rails-devel] 18EU bug in 1.5.2 > > > > > > > > Bill, > > > > I will respond on behave and in addition to Erik (see below). > > > > > > > > It seems that Erik thought at that time of his bug fix that the code > > > > for automatic passes was out of date/ineffective and simply commented > > > > it out. > > > > > > However this is something that I introduced because of a feature > > > > request especially for those occasions in 18EU. It took me some time > > > > to fix side- effects that the next player was not chosen in the > > > > correct sequence after > > > > > > an > > > > > > > automatic pass. I considered the 18EU StartRound to be quite a beast > > > > ;-) (please no offense taken - Erik). > > > > > > > > This did not occur for the standard StartRound (1830 style). I > > > > > > > > cannot > > > > > > > > remember if I have checked 1835 StartRound at that time. > > > > > > > > Unfortunately this is a UI function and thus cannot be tested by the > > > > > > current > > > > > > > automatic game tests. > > > > > > > > My preferred solution is to fix that by uncommenting the code and > > > > publish > > > > > > a > > > > > > > new Release 1.5.3, but I want Erik's opinion first, if this has any > > > > impact > > > > > > on > > > > > > > 1835 or other games. > > > > > > > > Stefan > > > > > > > > On Tuesday, November 08, 2011 03:44:44 pm Bill Rosgen wrote: > > > > > Erik, > > > > > > > > > > As far as I can tell, a bug was introduced in commit 1893c3 that > > > > > makes the 18EU minor auction unplayable in certain circumstances. > > > > > This is the commit with message: "In 1835 Start Round, removed > > > > > popups that reported forced passes. Also removed some > > > > redundant/ineffective code." > > > > > > > Specifically, I think the problem occurs whenever a player is > > > > > forced to pass in an auction due to a lack of funds. > > > > > > > > > > It seems like the 18EU Starting Round depended on exactly how > > > > > forced-passes were being implemented. In the attached savegame, > > > > > Carol has spent all of her money and so must pass on the minor > > > > > being auctioned, but instead of this happening, the Starting Round > > > > > window vanishes and Rails becomes non-functional. > > > > > > > > > > Digging further, the commented out code on lines 897-9 of > > > > > rails/GameManager.java seems to be the source of this behaviour. > > > > > Uncommenting it (as well as the function it calls in > > > > > PossibleActions) fixes 18EU, but it presumably will cause breakage > > > > > elsewhere. I suspect that StartRound_18EU.java has somehow > > > > become > > > > > > > obsolete, but after spending a while going through the various > > > > > StartRound and GameManager classes, I can't find the problem. > > > > > > > > > > Bill > > > > > > ---------------------------------------------------------------------- > > > ----- > > > - -- > > > > > > > RSA(R) Conference 2012 > > > > Save $700 by Nov 18 > > > > Register now > > > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > > > _______________________________________________ > > > > Rails-devel mailing list > > > > Rai...@li... > > > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > > > > > ---------------------------------------------------------------------- > > > ----- > > > --- RSA(R) Conference 2012 > > > Save $700 by Nov 18 > > > Register now > > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > > _______________________________________________ > > > Rails-devel mailing list > > > Rai...@li... > > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > --------------------------------------------------------------------------- > - -- > > > RSA(R) Conference 2012 > > Save $700 by Nov 18 > > Register now > > http://p.sf.net/sfu/rsa-sfdev2dev1 > > _______________________________________________ > > Rails-devel mailing list > > Rai...@li... > > https://lists.sourceforge.net/lists/listinfo/rails-devel > > --------------------------------------------------------------------------- > --- RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |
From: Erik V. <eri...@xs...> - 2011-11-08 22:57:10
|
> > 2. I understood this code was intended to autopass in start rounds > > only, but nothing in that code restricts its working to start rounds. > > I would expect a condition like ' if (getCurrentRound() instanceof > StartRound) '. > > I was undecided if it should cover also other cases. However in all other > Rounds it is never the case that the sole action is a pass: In StockRounds > there is always the AutoPass action available, in OperatingRounds Pass is > never the sole action too (here Skip or Done is used). So pragmatically there > was no need for an additional restriction and no one ever commented if it > would be nice to extend it to the other cases, so I never followed up. So correct working is dependent on unrelated circumstances accidentally being the case in other round types. > > 3. The code claims to check that there is only a Pass in the possible > > actions, but in fact it only checks that the first action is a Pass. > > In practice that might be equivalent, at least in the current code, > > but it creates a dependency that I would rather avoid. What you really > mean is: > > there is a pass and there isn't a bid or buy, i.e. no StartItemAction. > > Why not implement it that way? > > Please refer to the implementation inside PossibleAction.containsOnlyPass(): > > The code checks two conditions: > a) There is only one action and b) this action is a pass. > If both conditions are true the pass action is selected automatically. And it works as long as this check is done before adding correction and undo/redo actions. Well, if you feel happy with such dependencies, what can I say? I'm not. Erik. |
From: Stefan F. <ste...@we...> - 2011-11-08 23:10:21
|
Erik, I do not think it is a perfect solution and I do not feel happy about the current implementation. However I do not think that the code not only works correct accidentally, but there was a little consideration and some testing involved. Automatically choosing pass if pass is the only option is not a bad solution and the request in 18EU as well as the renewed request for 1835 by John David Galt showed that a silent pass in those cases is actually favored by most players. And given my e-mail at the time of implementation in 2010 shows that I have not sneaked that feature into our code base. However if you have a better solution I am more than happy to implement that and I could also add an additional check that it only silently passes in StartRounds and exclude all other RoundTypes. I have to admit that to me this seems more like an additional dependency, but this is based on my opinion that automatic (silent) passes is not a bad thing even outside of StartRounds. Another idea would be to make this a Configuration option to allow Novice Players to be not surprised by automatic passes. Stefan On Tuesday, November 08, 2011 11:57:01 pm Erik Vos wrote: > > > 2. I understood this code was intended to autopass in start rounds > > > only, but nothing in that code restricts its working to start rounds. > > > I would expect a condition like ' if (getCurrentRound() instanceof > > > > StartRound) '. > > > > I was undecided if it should cover also other cases. However in all other > > Rounds it is never the case that the sole action is a pass: In > > StockRounds there is always the AutoPass action available, in > > OperatingRounds Pass is never the sole action too (here Skip or Done is > > used). So pragmatically > > there > > > was no need for an additional restriction and no one ever commented if it > > would be nice to extend it to the other cases, so I never followed up. > > So correct working is dependent on unrelated circumstances accidentally > being the case in other round types. > > > > 3. The code claims to check that there is only a Pass in the possible > > > actions, but in fact it only checks that the first action is a Pass. > > > In practice that might be equivalent, at least in the current code, > > > but it creates a dependency that I would rather avoid. What you really > > > > mean is: > > > there is a pass and there isn't a bid or buy, i.e. no StartItemAction. > > > Why not implement it that way? > > > > Please refer to the implementation inside > > PossibleAction.containsOnlyPass(): > > The code checks two conditions: > > a) There is only one action and b) this action is a pass. > > If both conditions are true the pass action is selected automatically. > > And it works as long as this check is done before adding correction and > undo/redo actions. > > Well, if you feel happy with such dependencies, what can I say? I'm not. > > Erik. > > > --------------------------------------------------------------------------- > --- RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Rails-devel mailing list > Rai...@li... > https://lists.sourceforge.net/lists/listinfo/rails-devel |