These conditions are always evaluated top-down. Once the first condition is true, the appropriate action will be taken. Always! – so the order of programming matters. Let’s assume, that you want to call your flushdraws, but raise to 10bb your nut-flushdraws (expert-strategy 2012). Then you will have to write your commands in the following order:
WHEN HaveNutFlushDraw RaiseTo 10 FORCE WHEN HaveFlushDraw Call FORCE
WHEN hand$AT AND StillToAct = 2 AND Raises = 1 AND AmountToCall <= 4 RaisePot FORCE WHEN hand$AT AND StillToAct = 2 AND Raises = 1 AND AmountToCall > 4 Fold FORCE WHEN hand$AT AND StillToAct = 2 AND Raises = 2 ...
Here one part of the condition gets repeated:
WHEN hand$AT AND StillToAct = 2
WHEN hand$AT AND StillToAct = 2 WHEN Raises = 1 AND AmountToCall <= 4 RaisePot FORCE WHEN Raises = 1 AND AmountToCall > 4 Fold FORCE WHEN Raises = 2 ... WHEN hand$A9 AND StillToAct = 2 ...
Each open-ended when-condition is active until the next open-ended when-condition is found. In the example above:
WHEN hand$A9 AND StillToAct = 2
To terminate all your open-ended when-conditions just write:
When Others ... When Others Fold Force
Coding this way makes your code smaller, more easy to read and more easy to change. However: some people would like to take code-structuring to extremes and use multiple nested open-ended when-conditions like below:
WHEN hand$AT WHEN StillToAct = 2 WHEN Raises = 1 WHEN (AmountToCall <= 4) RaisePot FORCE WHEN (AmountToCall > 4) Fold FORCE WHEN Raises = 2 WHEN...
##f$preflop## // This is a comment // Your code belongs here. WHEN hand$AA RaiseMax FORCE WHEN hand$KK ... ... WHEN Others Fold FORCE ##f$flop## ##f$turn## ##f$river##
WHEN Others Fold FORCE
The sale of the program has been suspended indefinitely. Dismiss