Re: A method to implement Asian rule
[d] 4k4/9/3R5/4c4/2n6/4N4/9/4C4/9/5K3 w
Code: Select all
. . . . k . . . . . . . . . . . . . . . . R . . . . . . . . . c . . . . . . h . . . . . . . . . . H . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . K . . .
Actually, this is about two cases: with or without Hc5. In the latter case the question is: is the black Cannon being chased. On 2.Rf7 and 3.Rd7 this is obvious, but how about 1.Hg5+ and 4.He4+? These moves do check, as well as attack the Cannon with a new attack by the Horse. In all cases the attack is resolved by withdrawing the Cannon.
If we decide this is a chase, then the next question is: what if an additional black Horse is on c5? Does the Cannon now count as protected, when it is of e6? (Which would then make it a non-chase.) The point is, how to determine it? Normally you would make the capture (2.Hg5xe6 Hc5xe6) after 1... null, and determine if it leaves black in check. In this case of course it does, because black was already in check even before the capture. So his null move was illegal to begin with. But how else can we determine if we attack something? We first have to get the turn back...
There seem to be the following possibilities:
1) We could ignore checking moves completely, like they do not belong in the cycle. This would mean you are already chasing when you attack a piece on all non-checking moves. It is logically equivalent to declare that all pieces are chased by a checking move.
2) The total opposite of this would be to declare that no piece should be considered chased on a checking move. This is equivalent to not testing for chasing violations for a side that also checks.
3) We could adopt the fiction that the null move would resolve the check, by discarding any check existing before it in further testing. This would require making a distinction between different kind of illegal (but pseudo-legal)moves.
4) We could replace the nullmove by an actual evasion, and further compute from there.
It seems (1) is out, as it directly contradicts diagram 12 of Asia rules, where a "one check, one chase" case is declared a draw. Ignoring the checking move, would make a "one chase" a perpetual chase, as this was the only move left.
I also do not like (4): it is quite problematic if there are several ways to resolve the check. The actual evasions could subvert protections, open lines for new protections, etc., even if there was only a single legal one. We would not pay attention to side effects of resolving chases (as opposed to checks), so it would be quite unnatural to do it for check evasions, where the only difference really is that the evasion is forced. Other examples of Asia rule tell us that it should be quite irrelevant if a certain move is the only legal one, or not.
That leaves (2) and (3). IMO (3) would be the most logical. Using (2) would make a chase of piece A together with a "one chase, one idle" against piece B, which is defined as forbiddedn, different from a chase of piece A together with a "once check, one idle" against the King, which I think is undesirable. Unfortuately, this is also the computationally most complex solution...