(Extended) Betza notation

# Extended Betza notation quick reference guide

### Move steps of the basic atoms

layed out on a board (start at O)

 . . . . . . . . . . G J L H L J G . . J A N D N A J . . L N F W F N L . . H D W O W D H . . L N F W F N L . . J A N D N A J . . G J L H L J G . . . . . . . . . .

Larger steps are encoded by their step vector, like (4,1) for the step of a Giraffe. This still implies all eight possible directions.

Repeating a step (say W) upto a certain maximum number of times, or until it is blocked or you capture something ('sliding') is indicated with a number behind the atom, e.g. W3. Repeating it exactly 3 times would be written W03. An abitrary number of steps is indicated by the number 0 (zero), e.g. W0 (or, obsoletely, WW).

### Shortcuts and synonyms

K = WF, B = F0 (FF), R = W0 (WW), Q = RB, C = L, Z = J, from the well-known King, Bishop, Rook, Queen and somewhat lesser well known Camel and Zebra pieces.

Directional subsets: f b l r v s h a in various combinations

```SINGLE MOVES        PAIRS OF MOVES             SETS OF FOUR MOVES

lf rf          f f          lv rv          fh fh         lh rh
fl     fr     fs     fs     l       r      fh     fh     lh     rh
bl     br     bs     bs     l       r      bh     bh     lh     rh
lb rb          b b          lv rv          bh bh         lh rh

f                    v
l + r                s + s
b                    v

fl  fr         f   f         l   r
x              x             x
bl  br         b   b         l   r

f               v             v
fl   fr         fs   fs       lv   rv
l   *   r       s   *   s     s   *   s
bl   br         bs   bs       lv   rv
b               v             v
```

### Modifier prefixes

On the left the various modifiers to specify directions are shown. Note that the F and N are 'degenerate' cases, where there isn't a unique single forward move. This complicates the notation of their directions.

Concatenating conflicting directions, such as fb specifies their joined move sets (i.e. fb = f or b). Note that on non-diagonal 4-movers (which do not have moves in the fl direction) f and l are already conflicting, so that fl means f or l there. a stands for all, which is default, except in the context of chained continuation steps.

There are also prefixes to restrict what the move can do:
c = Capture only (carry away)
m = Move, but not capture
d = Destroy (= capture friend)
p = Hop over occupied square
t = Test for presence of friendly piece
o = Test for presence of board edge

The latter four are possible only as non-final part of a chained move,
as they leave the original occupant in the square.

### Grouping

Parentheses can be used for grouping, but have no meaning by themselves. (W) is exactly the same as W.

### Chaining

Atomic steps can be 'chained' into a single 'multi-leg' move. Actually W3 means (W)(W-fW)(W-fW-fW), where '-' is the chaining operator. The f means 'continuing forward', i.e. in the same direction, as directions are always measured relative to the previous leg. In the right-hand part of a chaining operator f is implied by default. To specify a bent trajectory, explicit directional prefixes are needed. Note that a bent chain can fork, and thus represent multiple moves.

Chaining implies the intermediate square should be empty, and the described move is considered blocked if it isn't. In other words, an m prefix is implied on every left-hand part of the chaining operator. Explicit use of modifiers for the move modality can override this, to create other conditions that have to be satisfied for the move to continue, or cause side effects.

Square content Off board
prefix Empty Friend Foe Explanation
m pass block block block Test for blocking
p block pass pass block Hop
t block pass block block Test for friendly piece
c block block capt block Hit-and-run capture
d block capt block block Destroy
u swap swap swap block Unload piece
o block block block pass Cross edge

The table on the left lists the various move-modality modifiers that can be used on the left-hand side of a chaining operation, and the effect they have for each possible state of the transit square. If multiple modalities are put on an atom, it means the step specified by it will succeed if any one of them succeeds (e.g. default modality on final-leg atoms is mc, which means the move can both capture and non-capture, but fails when it hits a friendly piece or strays off board.)

block = move described by chain cannot be made
pass = leave square undesturbed and continue with next atom
capt = remove occupant and continue with next atom
swap = swap the occupant for what you captured in a previous leg

The various modalities can be used to describe moves that are dependent on population of other squares, or cause side effects on such squares (e.g. Rook moves during castling, Pawn disappears during e.p. capture). The trick is to lay out a move path that visits all the affected or interrogated squares, and block if the required conditions are not met, but cause the side effects when they are not blocked. To cause side effects you would capture or destroy on a visited (but non-final) square, and possibly put back ('unload') a piece captured earlier on another square, effectively moving it. E.g. a Checkers capture is specified by not jumping two squares, but capturing Chess-like a Pawn in the first leg, continuing with one more non-capturing leg to the next square. Extra steps can also be used to limit accessible board area. E.g. by jumping an extra 5 squares forward and backward with mp modality after a Xiangqi Elephant reaches its destination, you can prevent it crosses the River.

### Special modifiers

The e is geometrical modifier similar to directional selection, which can be used only in the right-hand side of a chaining operation that specifies a sliding move. There it indicates that leg of the move should be equally long as a previous sliding leg (measured in board steps).

An x on an atom specifies eruption, an xx specifies explosion. When the chain reaches such a leg, the move is irrevokably accepted, and the piece has reached its final destination. With xx the piece will be removed, however. The rest of the chain then specifies the trajectory of 'ejected fragments', and all possible unblocked trajectories have to be followed to implement their side effects. At the end of the chain the fragments evaporate. For example, an -xacK suffix on a move would create 8 fragments which try to capture enemies on all adjacent squares, and leave the square empty when they succeed. By laying out smart paths for the fragments, you could make their destructive effects dependent on presence / absence of other neighbors of the intended victims, or have them move victims rather than destroying them.

An n modifier on an atom that otherwise would be a direct leap to a distant square indicates the move is non-jumping, but visits all intermediate squares, and an be blocked there. Oblique moves can use any shortest path made out of K steps, and are only blocked if these paths are all blocked. A j prefix similarly means the taken path must hop over exactly one piece. These modifiers are not strictly needed, but can be useful as shortcuts.

A leading modifier i on the first leg of move specifies the move can only be done with a virgin piece. When used directly with a c or d, it indicates that leg can only capture virgin pieces.

The o, p and t prefixes had different meaning in the original Betza notation, which they still have in the final step of a chain (where the extended meaning would make no sense) to restore backward compatibility. Originally o meant cylinder piece (wrapping aross the side edge of the board, which now only is the case if the move ends off-board, but not for intermediate steps. And pX meant what pX-cX means now, and thus implies a capturing version of the atom on which it acts follows, if no explicit continuation is written. Finally a g ('Grasshopper') modifier on an atom means a hop with the single-step version of that atom as second step, i.e. gQ implies gQ-K.