💡📝H. G. Muller wrote on Tue, Dec 14, 2021 10:43 AM UTC:
The o modifier for straying off-board is a very powerful tool, but unfortunately not very intuitive. From the examples I discussed in the previous comment it appears that it almost exclusively occurs in back-and-forth move, for testing if we are on an edge square. This is somewhat clumsy idiom, and last night it occurred to me it could be useful to create a new atom to perform this task in a more intuitive way: E could mean a null move that can only be made on an edge square. The Edgehog would then be [E-Q][mcQ-E], which I would consider a rather intuitive description. Because a null move has no intrinsic direction, we can stipulate that for the leg following it the forward direction is determined by the leg preceding it. (Or, in other words, 'forward' is continuing to move in the same direction as the latest leg that really moved.) So [B?E-sB] would be a reflecting Bishop. When the E is in the initial leg, the forward direction for the following leg could be defined as perpendicular away from the edge. So [E-fR] would mean a Rook move away from the edge. I guess we could allow directional modifiers on the E for indicating in which absolute direction it has to test for an edge: [B?sE-sB] would only be able to reflect from the left and right edges.
The other idiomatic construct in which o appeared was useful for 'burning' a single piece as the side effect of a move, i.e. a locust capture that must be made when it is possible, but would not preclude the move from being made when it is not possible (because there is no enemy on the indicated square, or the square would fall off board). This also involves a back-and-forth step, which needs the 'most-general non-overlapping' mode omc + friendly hop, which covers all possible states of the target square, and specifies its clearing only when it is an enemy. This problem was compounded by the fact that we have no modifier for friendly hopping, and that this needs the ckludge of friendly-capture + immediate unload. Where the need for the unload then makes in uncombinable with the c, so that you end up with a horrible [..omcK-bK...][...dK-buK...] construction. It would be nice to have some shorthand for this: burn the target if you can, but never mind if you cannot. One idea that came to mind is to use cc for this. So ccK would burn (without moving) an adjacent enemy in the direction of choice (which could be limited by directional modifiers) if one was there, but also continue if there wasn't. The Advancer would then simply be [Q-fccK]. The Withdrawer would be [ccK-bmQ], the b indicating that the Q move should go in the opposit direction from the burn square (and an m needed to suppress normal capture the final leg would have by default). Of course we could have a similar dd for friendly burning.
If no single direction is specified on the cc leg, any single one of the allowed directions can be chosen (as is usual in Betza notation). So the Forest Ox of Odin's Rune Chess could be written as [N?ccK]: move as Knight, and then optionally burn one enemy of choice adjacent to the destination square. If you would want to burn more victims, you would have to repeat the atom. E.g. [R-flccF-rccF] would burn two victims diagonally forward from the destination. It is a bit awkward here that the second burn needs r rather than fr, because it is referenced to the previous burn rather than the Rook move. (But ccK must (re)define a 'last direction', or otherwise the Withdrawer could not work.)
The o modifier for straying off-board is a very powerful tool, but unfortunately not very intuitive. From the examples I discussed in the previous comment it appears that it almost exclusively occurs in back-and-forth move, for testing if we are on an edge square. This is somewhat clumsy idiom, and last night it occurred to me it could be useful to create a new atom to perform this task in a more intuitive way: E could mean a null move that can only be made on an edge square. The Edgehog would then be [E-Q][mcQ-E], which I would consider a rather intuitive description. Because a null move has no intrinsic direction, we can stipulate that for the leg following it the forward direction is determined by the leg preceding it. (Or, in other words, 'forward' is continuing to move in the same direction as the latest leg that really moved.) So [B?E-sB] would be a reflecting Bishop. When the E is in the initial leg, the forward direction for the following leg could be defined as perpendicular away from the edge. So [E-fR] would mean a Rook move away from the edge. I guess we could allow directional modifiers on the E for indicating in which absolute direction it has to test for an edge: [B?sE-sB] would only be able to reflect from the left and right edges.
The other idiomatic construct in which o appeared was useful for 'burning' a single piece as the side effect of a move, i.e. a locust capture that must be made when it is possible, but would not preclude the move from being made when it is not possible (because there is no enemy on the indicated square, or the square would fall off board). This also involves a back-and-forth step, which needs the 'most-general non-overlapping' mode omc + friendly hop, which covers all possible states of the target square, and specifies its clearing only when it is an enemy. This problem was compounded by the fact that we have no modifier for friendly hopping, and that this needs the ckludge of friendly-capture + immediate unload. Where the need for the unload then makes in uncombinable with the c, so that you end up with a horrible [..omcK-bK...][...dK-buK...] construction. It would be nice to have some shorthand for this: burn the target if you can, but never mind if you cannot. One idea that came to mind is to use cc for this. So ccK would burn (without moving) an adjacent enemy in the direction of choice (which could be limited by directional modifiers) if one was there, but also continue if there wasn't. The Advancer would then simply be [Q-fccK]. The Withdrawer would be [ccK-bmQ], the b indicating that the Q move should go in the opposit direction from the burn square (and an m needed to suppress normal capture the final leg would have by default). Of course we could have a similar dd for friendly burning.
If no single direction is specified on the cc leg, any single one of the allowed directions can be chosen (as is usual in Betza notation). So the Forest Ox of Odin's Rune Chess could be written as [N?ccK]: move as Knight, and then optionally burn one enemy of choice adjacent to the destination square. If you would want to burn more victims, you would have to repeat the atom. E.g. [R-flccF-rccF] would burn two victims diagonally forward from the destination. It is a bit awkward here that the second burn needs r rather than fr, because it is referenced to the previous burn rather than the Rook move. (But ccK must (re)define a 'last direction', or otherwise the Withdrawer could not work.)
Does any of this make sense?