Comments/Ratings for a Single Item
That'd be nnNN, wouldn't it?
So... the furthest move would be GXY (8,5), wouldn't it?

There is no limit, as you can use multiple X and Y. CXX would be a (9,1) leap.
That gave me a lame knight.

That gave me a lame knight.
Indeed. The n modifier is overloaded, and its original meaning is 'non-jumping', only meaningful on a distant leap. With nn a backward-compatible convention for indicating it generated e.p. rights on the square it can be blocked. On a rider with distant leaps it should mean the individual steps do not jump. (Riders never jump over occupied squares in their path.)
Only on sliders it cannot be used in this meaning, and in that case it means e.p. capturable on the squares it passed through.
I actually liked the wikipedia version of it more, with t[FR] for the Griffon, F then R. And other symbols/compunds within [] changing their meaning, like [cr], [ca] and [cw] for rifle, approach and withdraw capture respectively. But this page does note other things like X, k, y and U
This page is about XBetza notation. t[FR] is from the original funny notation while [cr], [ca], and [cw] are from Bex notation.

Well, I don't see how t[FR] is significantly different than [F-R]. And as a practical concern, it uses a t where lower-case letters for modifiers are already in short supply. Of course one could argue that in front of brackets the symbols really live in a different namespace, so that they can all have different meanings than when prefixing a capital.
The problem with the [ca] etc. is that they are special cases that have no generalizations. 'Approach' how? Do you have to end next to your target, or is it enough to just move in its direction? Or must you stop at a distance of exactly 2 squares? By introducing [ca] you still don't have any notation for the latter two cases.
But I agree that the current version of the notation can still be improved. Proposals for that have already been made. In particular the case of automatic but not mandatory side-effect captures (i.e. which must remove the victim if it is there, but won't block the move if it is not) is now very awkward, and the modifier cc had been proposed for that (for lack of available letters). This would write the Advancer as [Q-ccK], i.e. a Q move that must afterwards perform a rifle capture through a K-step in the same direction, if there is an enemy there, but can still make the Q move if there isn't, and the next square is a friend, empty or off board. The case of a 'long-range Advancer' would then be [Q-ccQ].
And by changing the order of the legs you get the Withdrawer for free: first shoot the victim, and then move in the opposit direction ([ccK-bQ]).
Ok, hear me out, ni for not initial, not to be confused with in
Although some things are still missing like immobilization and hia power, also a question, can you make the (1,1)-Zigzag Nightrider, the one that goes b1-a3-c2-b4-d3, with this notation
Edit: We'd also need to be able to get copying of Defending Pieces, Your last moved piece, last captured piece, etc. for that [In] could work where n is replaced by other symbols for different copies, if we do that we wouldn't need M for Mirror

I am not sure if all these should be considered the task of move notation. Basically the purpose of Betza notation is to indicate geometrical patterns on the board, in combination with the occupancy of the destination. 'i' is already a concession, justifiable because it is such a common case.
Immobilization and Hia power are not moves. They are spells. They certainly have a geometric aspects, which could be expressed in Betza notation. But there is no need to combine their specification with that of the move; that needlessly raises the problem how to distinguish these specifications.
The Crooked Nightriders can be made with the aid of parentheses for delimiting repeating modifier groups. See the Nachtmahr article.
Two possibilities for the I (Imitator) atom:
- Attaching a number so that more than just the very last piece is Imitated; for example I2 for the last two pieces. Could be modified using lower-case letters for things like only the last two opponent's pieces.
- Allowing for a Protean; that is, a piece that assumes the powers of the last piece it captures. Maybe could be done as cI or xI. (It could also be a modifier for M; cM could be the basic Protean, cM3 for something that imitates the last three pieces it's captured, etc.)
I recognize that these might be more easily said than done, to the point of not being doable at all, but it's a thought.
I do second Niels's proposal of ni for "not initial," as it would expand possibilities quite a bit. With the rest, of course, you're quite right.
Also, with parentheses notation, there should be some way to indicate "as many times as the board's size will allow," basically duplicating the function of a double atom letter. (If nothing else, it'd make copying those complex moves from one game to one with a larger board less of a hassle; no need to figure out manually what that number would be.) I've been using # in my own notes, but ! or " might make more sense.
Edit: Never mind the latter. It can be done by just using no number at all. At least, the PTA treats it that way.

For ranges on atoms 0 (zero) can be used for indicating unlimited range. So it would be logical to do that here too. Problem is that it is not obvious what the maximum number of repeats should be, (e.g. in case of crooked path, or a Reflecting Bishop on a non-square board) and that it is rather harmful for efficiency to use a too-large value. (It is like defining a Rook as WafWafafWafafafW... with ever longer lame leaps, the path of those tested over and over again for emptiness.) That also makes it difficult for the Diagram to determine it. Remember that 'artificial intelligence' really is a eufemism for 'artificial stupidity, applied in brute force'.
Life will become easier when I will extend the XBetza parser to handle the parentheses directly, instead of through a preprocessor that makes a different move for every number of repeats. The current move generator already uses a system where you can have a move of very many legs, all optional, for doing old-fashioned zB or qN. Provided that the legs are just direction changes of a slider/rider path. It can even do (grass)hopping versions of those moves. This is an efficient method, and the path can be made far longer than needed, without any impact on efficiency. The move generator would just traverse the entire path once, emitting a move at every step where continuation is marked as optional, and stop when it hits a piece or goes off board, no matter how many optional continuations remain in the definition.

Do you know any variant at all that has a 'not-initial' move? I don't like it much to combine modifiers that individually have a different meaning. For modifiers the rule has always been that the order is arbitrary.
I don't know any that currently exist, but I've had some ideas for a while now (since before joining the site) that would apply here. For example, a creature or assassin (or creature-inspired assassin) that leaps like a Sabertooth on its initial move, but can slide like a Queen (or at least a Heavenly Tetrarch) afterward. It's not just for Dealer's Chess or Unnecessarily Complicated Chess, either; that assassin would work well in an expanded Desert Dust.
And while it doesn't have to be ni (though I'm not sure what else to use, since ii is already in use), there is some precedent for order mattering in the case of h: lh and rh mean something different from lr and hr. (I think there's a distinction between ck and kc as well.) And looking at the XBetza system, I can't really see any reason besides this to put the n before the i (mnemonically, the i most logically comes first, and in practice I don't think I've ever seen it anywhere else).

Well, directional modifiers are different, as some directions must be specified by a pair of them. And h has no meaning of its own, unlike i and n, and kc and ck do mean the same. (It is just that plain k means capture King only, and the other capture everythin but King, so that k is a toggle.)
I am sure you can think of something that moves according to any kind of rule, no matter how far fetched... But the fact that you don't know any variant that already requires it is more significant. The ID can already handle this case, should it arise, by immediately morphing the piece that is originally present into another one that does have the move you want it to acquire. So there really is no need for an i in the first place; that XBetza supports it is only because it is so common.
In Scirocco one of the promoted pieces induces N moves like Q3. This poses the problem in XBetza you usually have, when legs of a move use incommensurate atoms. And the usual solution is to express those as multiples of their 'common denominator', usually K steps. Q3 already does consist of K steps, so one has to write the N leg as two transparently glued K steps: xyampafsQ3. After the xQ3 leg the ya toggles the range to K for the following legs. An mp leg in the arbitrary direction followed by a 45-degree turn for the final leg add a Knight move to that.
In bracket notation this would be [xQ3-aN], but I am not sure the ID can already handle oblique after orthogonal/diagonal.
Revisiting this, especially the latter part, in light of the Relay Thaumaturge in Unnecessarily Complicated Chess.
Since a normal Thaumaturge is KCZ, if I want the piece to share all its moves to all the locations, the Relay Thaumaturge would (using bracket notation) be KCZxaKxaCxaZ[xK-aC][xK-aZ][xC-aK][xC-aZ][xZ-aK][xZ-aC]. Did I get that right?

That is the right principle. But as the quoted text says, I am not sure the ID would understand this, as bracket notation is not fully implemented.
Since it is always clear in bracket notation what belongs to the same leg, I suppose there would be no reason to forbid compound legs. The XBetza compiler already expands the moves like you did here, not for different atoms, but for different directions of the same atom. (So aK gives 56 moves in the move table!) Your Thaumaturge could then be written as [xKCZ-KCZ]. Of course there is currently no support for this at all in the ID (except for the WF case implied by K), but it is a thing to keep in mind when implementing direct compilation of the bracket notation.
I actually was going to suggest a [xKCZ-KCZ] form for some future update. But there are more pressing things for this (such as implementing the S = AD and T = GH atoms you mentioned earlier*).
Thanks for the helpful reply.
*I also wonder of this could be extended to KX, SX, TX, and so on. I doubt it, but it's a thought.

I suppose extension should be easy. The point is that the betza parser already considers orthogonal and diagonal moves one family. So rather than splitting up K into W and F by some preprocessing, it considers W and F a form of K with a different (incomplete) default direction set. So apart from the different interpretation of the directional modifiers and the default for it, they would all be considered moves with a (0,1) step, (even F!), yet to be (pseudo-)rotated in several orientations as specified by the direction set. Encountering an X suffix at that point would increase that step to (0,4). In fact KX already works now! It is just a matter of also recognizing S and T as atoms with radial symmetry, and step (0,2) or (0,3), respectively. Then the SX and TX come for free.
[Edit] OK, I added the S and T atoms in both betza.js and betzaNew.js. I must fix the Spiral-Chess Diagram now, though, as I represented the spiral move as S there, counting on the Diagram script ignoring that. But now it would give the King an extra Alibaba move...
Outstanding! I've tried out the S and T a bit, and I think it'll simplify a lot of things -- like the Linebacker Pawn's "push" move, to [fhmS-ubcK] and [ifhmT-ubcK] (unless, of course, I should put the u on the first segment; I have a hard time with that bit).
As an aside, I experimented with KY, SY, and TY. The ID only appears to recognize the orthogonal move with those, adding a (2,2) leap so that TY = AX (= (5,2) = Bharal), where I'd expect either AXGY or AXCY* (depending on how one wants to interpret it). I don't know if anything can -- or even needs to -- be done about that.
*AXCY = my Thoroughbred, which would turn the Midnighter -- my second-favorite piece of my own invention -- from NNAX0CY0 to NNTY0.

The u is in the right place; unloading occurs on the start square of the move, unlike the other mode modifiers, which specify a condition on the destination.
I suppose I must still make the preprocessor that handles the bracket notation recognize the S and T, though; in translation to normal XBetza every leg in your move would have to be expressed in K steps, and it must know how many.
[Edit] OK, the S and T should now also work in the bracket notation as first leg, when a step or slide follows. Like K it works in a bit of a kludgy way; it determines the range of the leap, but the symmetry is actually determined by the atom in the second leg. So if you used K there, it would already have interpreted and A, D, G or H as if they were S or T. Based on the reasoning that if the first leg was a 4-fold atom, no matter how you bend, you would always know whether the next leg is orthogonal or diagonal, and use the corresponding 4-fold atom there rather than K.
Using X in the first leg of a bracket notation does not work yet.
KY is not supposed to work. I can find no logical meaning for it. Oblique moves already are 8-fold symmetric, and you can make all such move sets by extending the regular 4-fold atoms. To extend the radial 8-fold atoms to larger distance the X is already enough.
Just to make sure I have it right:
There's no way, in the current implementation, to represent the capturing abilities of the Coordinator or Pincher.
25 comments displayed
Permalink to the exact comments currently displayed.
D'oh! I didn't think of that. ab it is.
Edit: That doesn't quite work as advertised on the ID, actually.