ORIGINAL: brian brian
I think Bo is on to something here, and indeed the first few decisions on which rules options to exclude from the AI have already been made.
It probably would be easier to program the AI to play "WiF Classic" than it would be to play "WiF SuperDeluxe".
It takes a long time and a lot of game-playing to realize this, but more than a few steady players of the game move back from the cutting edge of adding every possible ADG kit to a pile of now more than 6,000 counters and just play Classic these days. Possibly Steve would disagree here, that the programming would be the same. But it seems intuitive to me that the AI will perform better at the lower counter densities and thus fewer decision points of a Classic game as opposed to one with light cruisers, construction engineers, oil tank farms, and sorting out things like this for example: gun divisions that are heavy/light/static/towed/self-propelled/sometimes-doubled/sometimes-not. Ditto on which types of divisions can interact with which types of ships of planes.
Even if you stick to
just WIF Classic there are a lot of rules. Consider the following (for debugging naval movement code):
1 - Move an individual naval unit during the Naval Movement phase (unlimited naval moves permitted) and test that it can correctly reach each sea area and port destination. Include the rules about passing Gibraltar/Skaggerak/Panama/Suez/London, going through Kiel, stopping in Brest even if London is not held.
2 - Move multiple naval units as a stack for the same as #1.
3 - Do all the above during a combined action and keep track of naval moves.
4 - Do all the above using submarines (which can go pass Gibraltar and only require 1 naval move if they all start from the same hex).
5 - Do all the above, then undo moves and see if the units return to the correct locations. The number of available naval moves increases when a move is undone.
6 - Do all the above including naval transports and have the TRS pick up units from port (both at start and when passing through a port) and from a sea area (both when starting in a sea area and when ending a move in a sea area).
7 - Repeat all of the above for the Returning to Base phase, forced naval rebases due to overruns, conquest, liberation, and Vichy France formation and collapse, and aborts from naval combat.
8 - Now repeat all of the above when enemy units can conduct naval interceptions. Once an interception is possible, undoing any moves is prohibited. Consider the following cases:
8a - no interception attempted. Moving units stop in the sea area (they can now load units from coastal hexes).
8b - no interception attempted. Moving units keep moving (perhaps after dropping off some units - dropped off units can load units from coastal hexes).
8c - interception attempted but failed. Moving units stop in the sea area (they can now load units from coastal hexes).
8d - interception attempted but failed. Moving units keep moving (perhaps after dropping off some units - dropped off units can load units from coastal hexes).
8e - interception succeeded and moving side stops in the sea area (they can now load units from coastal hexes).
8f - interception succeeded and moving side fights through (either voluntarily or forced to do so by the rules). This variation has several logic paths depending on the outcome of the naval combat.
9 - For all the above, consider that multiple players can be moving units simultaneously during a NetPlay game.
There are rules about weather, DOW surprise, neutrality, cooperation betweenn countries, control of minor countries, and foreign troop commitments that have to be considered in the above.
---
Given all this, adding in that SCS units can carry divisions, restrictions on the what the Queens and AMPHs can carry, and Rough Seas are minor additions.
P.S. I might have forgotten to mention some things. But I do know that all of the above have to be considered and coded (it is at least 10,000 lines of code). Note that I haven't even gotten into the details of naval combat in the above list.