Interesting variant. The following Diagram gives a good approximation. (Requires a refresh of the browser cache, to make pieces without any moves work.)
I also had to implement something for winning by reaching a target square.
Such a game rule is also encountered in King of the Hill and Kahn Chess.
For the moment this is handled through the routine BadZone() in a user-supplied script,
(which was needed here anyway for preventing promoted pieces move back into their own half):
when this function returns -1 the Diagram's standard script now interprets this as a winning move,
rather than a forbidden move.
Such a win is treated as baring in Shatranj,
so that there is an after-move for proving the move was legal,
and would declare a loss instead if it exposed royalty to capture.
This again required the result of counter-baring to be specified by a parameter,
(rather than always being a draw),
as it should not be possible to draw here by reaching the Altar
on the half-move following the one where the opponent did.
Interesting variant. The following Diagram gives a good approximation. (Requires a refresh of the browser cache, to make pieces without any moves work.)
I also had to implement something for winning by reaching a target square. Such a game rule is also encountered in King of the Hill and Kahn Chess. For the moment this is handled through the routine BadZone() in a user-supplied script, (which was needed here anyway for preventing promoted pieces move back into their own half): when this function returns -1 the Diagram's standard script now interprets this as a winning move, rather than a forbidden move. Such a win is treated as baring in Shatranj, so that there is an after-move for proving the move was legal, and would declare a loss instead if it exposed royalty to capture. This again required the result of counter-baring to be specified by a parameter, (rather than always being a draw), as it should not be possible to draw here by reaching the Altar on the half-move following the one where the opponent did.