From: Stefan F. <ste...@we...> - 2011-10-19 16:33:50
|
This is a follow-up to the one of the issues in the 1835 test report: I think we should highlight somewhere in the wiki and the comments for the restrictions that the tile and token laying rule enforcement and highlighting currently suggest and allows some illegal tile and token lays. However both mechanisms should NEVER disallow or forget to suggest allowed and illegal tile lays. The latter are always bugs and should be reported. The other round is currently unavoidable and have to be handled by the players themselves. I quickly went through the 1835 game file and I have not found a situation where the tile/token highlighting forgot to suggest a valid hex, but it is easy to make a mistake here. So if John or Erik could possible point out some cases the algorithm missed upgradable or buildable hexes in that test game, that would be helpful. Stefan Some longer remarks on the token and tile laying logic: There are currently several parts of code that try to add some help for tile and token laying. However they are independent from each other and focus on different aspects. A) The main rails game engine suggests Tile and Token laying actions are based only on the knowledge of available token and tile laying actions of the company. It currently has knowledge of the map configuration, availability of tiles and/or the network of the operating company. After a tile lay or token lay it checks if the company has sufficient funds available to execute the action. B) There is some support code in the Rails GUI to guide the user through the tile selection process. However it can only considers the selected hex and its local neighborhood, but has no knowledge about the network of the operating company and/or if the company has sufficient funding to execute this action. C) The highlighting of suggested hexes for tile and token lay is then again simply based on the operating companies network only: It highlights all hexes that are reachable by the current network and it checks if there is any tile that is in the upgrade path of the current tile. It however does not take into account the specific neighborhood of the current hex and/or if the company has the required funding to executed such an action. A perfect solution would merge all those checks into one. However this is not so easy as it might seem in first place. On a second look it is a non-trivial task to find out if and where are valid tile lays considering all constraints (operating company network, operating company funding, tile upgrade charts, tile availability, local neighborhood restrictions for tile upgrades, checking for the permissive or (semi-)restrictive upgrade rules etc.). > > > 9. The Pfalzbahnen owner is being offered opportunities to lay a token > > using > > > its special power even when impossible (because the company currently > > operating has run out of tokens and/or already has one in the Pfalz hex). > > Yes, that's a detail that still needs to be addressed. I have no solution > for that yet. See also your next point. > > > 10. The Map window now allows a "Special" action to close private > > companies > > > voluntarily. I don't think this is legal in 1835. (I ran across this > > while looking > > > for a command to use Pfalz's power to lay a tile. I think this "Special" > > menu > > > would be a much better place for tile- and token-laying powers to be, > > rather > > > than make the user click "No Tile" or "No Token" an extra time every > > turn. But I suppose that's a style issue.) > > This is a stop-gap to enable closing privates that do not automatically > close according to the rules, such as the PfB above. This also applies to > the OBB. > Once all that works correctly, this option will be removed. > > > 11. The tile-laying logic is mostly correct but still suggests tile lays > > where the > > > new tile is rotated in a way that makes it not connect to any station of > > the > > > company. And there are situations where some tile lays are allowed but > > nothing gets suggested. > > Indeed the tile laying process needs several refinements. We all know, and > if it was easy it would probably have been done already. > > > (This game, the Pfalz owner did not have a major company before Phase 3, > > so I was unable to verify whether it still offers the Pfalz tile-lay on > > every > > > major-company turn of that player during yellow phase, which should never > > happen because the tile lay is impossible then.) > > > > 12. The token-laying logic similarly still makes mistakes. It suggests > > every turn > > > that BY lay a station marker in the south side of Nurnberg- Furth, even > > though it laid one on the north side in OR2 using the NF. > > That would obviously be a bug. > > > (Oddly enough, in a problem that resembles point 3 in reverse, the five > > PR tokens that are supposed to be reserved for exchanging minor company > > tokens > > *do* show up as available to be built. Next time I'll try to build them > > in > > > arbitrary locations and see what happens -- both then and when the minor > > companies merge and there aren't any PR tokens for them.) > > Interesting question: are these PR tokens really reserved? I don't believe > the rules say so. > |