Check out Atomic Chess, our featured variant for November, 2024.

Enter Your Reply

The Comment You're Replying To
H. G. Muller wrote on Mon, Oct 14, 2013 01:05 PM UTC:

Some more directional nitpicking

The default continuation in the 'forward' direction when chaining steps is often ambiguous. E.g. if F or N follow W, or W or N follow F. So without use of explicit directional modifiers, such chains would fork. First I thought this was a very powerful feature, being able to express a lot of moves at once.

Now I came to realize, however, that it is in fact a very undesirable feature. W-F-W would fork both at the F and final W, and (when starting forward from e4) could move e4-e5-f6-f7, e4-e5-d6-d7, e4-e5-f6-g6 and e4-e5-d6-c6. But the latter two are a sort of lame multi-path detour Alfils, while the first two are a specific form of lame Camels. Having the same notation specify both these quite different moves is only annoying, unless they would usually occur together on the same piece. (While it is in fact very unlikely they ever would.) Because then you would have to start fiddling with directional modifiers to indicate which of the two you meant. It is like doing away with the F and W atoms, and forcing the user to use flfrblbrK when he means F, and vsK when he means W.

So I wanted to put the additional requirement that chains can never fork, except when the steps can go in completely independent directions, specified by 'a'. (This is actually pretty common.) In particular, this means that the default interpretation, in absence of explicitly written directional modifiers, must always single out a unique direction as the 'most-forward', even when strictly speaking there are two completely equivalent ('degenerate') moves.

The rule I want to adopt for this is that when the previous step does not uniquely define what 'forward' is, as in W after F, you would look at the step before it to decide which of the two you should take. (And so on, until you reach a decision.) So in the W-F-W example, at the second W after e4-e5-f6 the choice is between f7 and g6. But compared to e4-e5 f6-f7 is forward, and f6-g6 is right. So f7 wins, and the chain W-F-W specifies a Camel move by default. Should you want to indicate the other one, you would have to write explicit directional modifiers. Once it is established what 'f' means, the other directions can be indicated in the non-degenerate 4-fold or 8-fold (W and K) systems. It would be illegal to use non-unique directional specification (other than 'a'), like s, v, fh in continuation steps.

This leaves the problem when all previous steps are in the same direction, which will certainly be the case if there is only one. But then the two possibilities are indeed mirror images belonging to the same atom. So it is not very objectionable to have both; the worst it could mean is that the chain now specifies 8 symmetry-equivalent paths, rather than 4. Which, for an oblique path, is in general what we want anyway. so W-F to specify the 8 moves if the Xiangqi Horse is fine.

But the two paths will have different chirality, being mirror images, so that l and r would have reverse meanings further down the chain, which would cause a problem in case we want to use explicit directional specs. So we adopt the convention that we use l and r always as if the first breaking of 4-fold symmetry in the path goes to the right. This breaking can be the first bend in the trajectory, or the first move when it is oblique. In the latter case, moves like e4-f6, e4-c5, e4-d2 and e4-g3 (right of the closest orthogonal axis) are considered to go right, the other four Knight moves are considered to 'go left'.

To avoid mix-ups with l and r, we adopt the convention that chains must always bent to the right first, but that when we write them, we mean both the written one and its mirror image. Thus W-flF would not be a valid specification of a 'Chiral Horse'. So what if we want to specify a piece that moves like that? Well, W-F defaults under the new rules to W-frF, and specifies 8 different (overall N) moves: 4 because of the leading W, and then two mirror images each because the trajectory bents. The directional specs for the degenerate 8-fold case (Knight moves) can thus be used to select directions from this. f(W-frW) would still specify two moves which are mirror images of each other (as fN specifies two such moves), and lf(W-frW) would then specify only the left-handed one of those (like lfN would).

To make the parentheses superfluous, we can adopt the convention that the first member of a chain can never have a directional modifier, and that directional modifiers written there always apply to orient the chain as a whole (but by specifying the starting direction, not the overall direction). This seems fitting: it makes chains just like atoms, who also always specify all symmetry-equivalent moves.

Example - We can write e.p. capture,which involves two chiral mirror-image trajectories to trample its victim and then move to its destination, as fscW-rmW. The cW-rmW would specify a move like one orthogoal step forward, then one orthogonal step right, and satisfies the chirality rule of bending to the right. But it represent all 4 moves that are rotated versions of it, as well as their 4 mirror images. The e.p. capture only uses two of these, that start to the left or right, and then curve 'up' (which is left for one, right for the other). The corresponding Knight moves that do this would be fs, hence this is what has to be written in front of it.

The formal grammar of this extended Betza notation would become:

SPEC := DIRECTED_PATH | DIRECTED_PATH SPEC
DIRECTED_PATH := DIRECTOR PATH | i DIRECTOR PATH
DIRECTOR := DIRECTIONSET | DIRECTIONSET DIRECTOR
DIRECTIONSET := v | s | fh | fs | bh | bs | rh | rv | lh | lv | DIRECTION
DIRECTION := f | b | l | r | a | fl | lf | fr | rf | br | rb | bl | lb | EMPTY
PATH := QUALIFIED_SLIDE | QUALIFIED_SLIDE - DIRECTION PATH
QUALIFIED_SLIDE := SPECIALS MODALITY SLIDE | SIGNAL
SPECIALS := SPECIAL | SPECIAL SPECIALS
SPECIAL := e | x | xx | EMPTY
MODALITY := ACTION | ACTION MODALITY
ACTION := m | c | d | p | t | u | o | i | EMPTY
SLIDE := STEP DRESSED_EXPONENT | STEP
DRESSED_EXPONENT := DIRECTION MODALITY NUMBER
STEP := ATOM | ( PATH )
ATOM := O | W | F | D | N | A | H | L | J | G | COORDS
COORDS := ( NUMBER , NUMBER )
NUMBER := DIGIT | DIGIT NUMBER
DIGIT := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
SIGNAL := PSEUDO_ATOM | PEUDO_ATOM NUMBER
PSEUDO_ATOM := T | S 
EMPTY :=
The subtle thing here is that a PATH cannot contain directional modifiers on its first step, so that any such modifiers appearing there are taken to refer to the PATH as a whole (to make a DIRECTED_PATH). While later SLIDEs of the PATH can only have a single DIRECTION as prefix, not the more general DIRECTOR, which can be a group of directions.


Edit Form

Comment on the page Betza Notation

Conduct Guidelines
This is a Chess variants website, not a general forum.
Please limit your comments to Chess variants or the operation of this site.
Keep this website a safe space for Chess variant hobbyists of all stripes.
Because we want people to feel comfortable here no matter what their political or religious beliefs might be, we ask you to avoid discussing politics, religion, or other controversial subjects here. No matter how passionately you feel about any of these subjects, just take it someplace else.
Avoid Inflammatory Comments
If you are feeling anger, keep it to yourself until you calm down. Avoid insulting, blaming, or attacking someone you are angry with. Focus criticisms on ideas rather than people, and understand that criticisms of your ideas are not personal attacks and do not justify an inflammatory response.
Quick Markdown Guide

By default, new comments may be entered as Markdown, simple markup syntax designed to be readable and not look like markup. Comments stored as Markdown will be converted to HTML by Parsedown before displaying them. This follows the Github Flavored Markdown Spec with support for Markdown Extra. For a good overview of Markdown in general, check out the Markdown Guide. Here is a quick comparison of some commonly used Markdown with the rendered result:

Top level header: <H1>

Block quote

Second paragraph in block quote

First Paragraph of response. Italics, bold, and bold italics.

Second Paragraph after blank line. Here is some HTML code mixed in with the Markdown, and here is the same <U>HTML code</U> enclosed by backticks.

Secondary Header: <H2>

  • Unordered list item
  • Second unordered list item
  • New unordered list
    • Nested list item

Third Level header <H3>

  1. An ordered list item.
  2. A second ordered list item with the same number.
  3. A third ordered list item.
Here is some preformatted text.
  This line begins with some indentation.
    This begins with even more indentation.
And this line has no indentation.

Alt text for a graphic image

A definition list
A list of terms, each with one or more definitions following it.
An HTML construct using the tags <DL>, <DT> and <DD>.
A term
Its definition after a colon.
A second definition.
A third definition.
Another term following a blank line
The definition of that term.