Translations | |
---|---|
View Template Page | |
English | RLUWDCP notation |
The Four Standard Languages | |
Egonyota Pasaru | Laȝoħasínū |
Serakafph Xaxex | Peraño Xasinu |
yukũa|Elaga ütæk|Qvalsa | {{{yukũa!Elaga ütæk!Qvalsa}}} |
Cipogrtesaj | Bikrta Hasinû |
Ħasínū notation (Egonyota Pasaru: Ħasínū – English Game piece)*, with its large plethora of synonyms ^{[1]} is a near-universal method of describing chess pieces. It ultimately owes its origin to Ralph Betza^{[2]} and is inspired by programming languages and their function arguments. Since then it has also been ported to Meta1, which is also described here.
It also has a rival, Bensaħas notation.
Range descriptionsEdit
This section deals with how to explain a move.
Orthogonal and Diagonal movesEdit
An orthogonal move and/or a diagonal move follow this syntax:
S×NdR
- S
- S is the distance, measured in cells. Use curly brackets {} to specify ALL distances available. If the piece in question is a rider, write n for S and simply take away the × sign.
- N
- N is the number of directions that the piece could go. Must be in the set{1,2,3,4,5,6,7,8}. If there a piece that moves in more than 8 directions, it must be an oblique and/or multi-dimensional piece.
- R
- These are all the directions of your piece. The eight directions are specified below.
\ | a | b | c |
---|---|---|---|
3 | NW | N | NE |
2 | W | O | E |
1 | SW | S | SE |
If the × symbol is unavailable (e.g., in ASCII), then the fallback character x may be used.
Separate all directions with a hyphen. N-E-S-W could be shortened to O. NE-SE-SW-NW could be shortened to D.
Sometimes, though, it might be more advantageous to list the direction the piece may not move to, because there are too many directions it could move in. In this case, if there are 8-N directions specified in R, then it is understood that all directions except those that are specified in R are used.
Piece | Betza | Ħasínū |
---|---|---|
Short Rook | R4* | {1, 2, 3, 4}×4dO* |
Bishop | B* | n4dD* |
Queen | Q* | n8d* |
Lance | fR* | n1dN* |
Drunken Elephant | FfrlW* | 1×7dS* |
Hippogonal MovesEdit
A hippogonal move, also known as an oblique move, is any move that is not in the eight cardinal or ordinal directions. It has a syntax
(X, Y)
- X
- The number of squares in one direction.
- Y
- The number of squares in the other direction.
X and Y can be interchanged at will; (2,1)* and (1,2)* are equivalent.
Piece | Betza | Ħasínū |
---|---|---|
Knight | N* | (2, 1)* |
Camel | L* | (3, 1)* |
Zebra | J* | (3, 2)* |
Combinations of Radial and Oblique movesEdit
Compounds are pieces that combine radial and/or oblique moves. To notate them, list off all their constituent pieces and separate them with and ampersand &. Oblique pieces come before radial pieces, and &s may be omitted when it comes in between two oblique moves.
Note that when combining two radial moves of unequal range together, there are alternatives that describe the same piece.
Piece | Betza | Ħasínū |
---|---|---|
Cardinal | NB* | (2, 1) & n4dD* |
Marshall | NR* | (2, 1) & n4dO* |
Amazon | QN* | (2, 1) & n8d* |
Gnu | NL* | (1, 2) (1, 3)* |
Buffalo | NLJ* | (1, 2) (1, 3) (2, 3)* |
No name | B5R4* or Q4B5* | {1,2,3,4}×8d & 5×4dD* |
Bent and Circular RidersEdit
These pieces move in one direction, then suddenly decides that the other way is better and continues in the new direction.
Write down the first move, then put in an “&t”, the angle of turn in degrees and the other move. North is always upwards.
You may omit the turn angle. You may also define the turn angle in radians or grads (though I will strongly warn against radians, as the values are tricky!)
Piece | Betza | Ħasínū |
---|---|---|
Gryphon | FtR* | 1×4dD &t n4dO* |
Anchorite^{[3]} | WtB* | n4dO &t n4dD* |
Rhino | WtF* | 1×4dO &t 1×4dD* |
Rose | qN* | n((2,1) &t22.5°)* |
Pay special attention to the Rose: the notation reads "make a Knight move ((2,1)*) and then turn 22.5° (&t22.5°*). Repeat for as long as required (n(...)*).
Parts of Oblique MovesEdit
\ | a | b | c | d | e |
---|---|---|---|---|---|
5 | NW | a | N | b | NE |
4 | h | NW | N | NE | c |
3 | W | W | O | E | E |
2 | g | SW | S | SE | d |
1 | SW | f | S | e | SE |
It's easy enough to describe a Rook that never moves backwards in either notation: frlR*/n3dN-E-W*. But while Knight that never moves backward in Betza is fhN*, what is the equivalent Ħasínū notation?
Here lies the very weakness of Ħasínū. It uses a separate indexing system for these fractional oblique moves.
Refer to the diagram at the left. There are only eight oblique directions that a simple oblique piece can follow, and they are the highlighted cells. To specify move of a fractional rider, simply pick the appropriate letters and put them after the brackets.
To answer the question above, the parts of a Knight that moves forward are a, b, c and h, so the Ħasínū notation is (1,2)abch*.
Piece | Betza | Ħasínū |
---|---|---|
Fibnif | fbNF* | (1,2)abef & 1×4dD* |
Crab | ffNbsN* | (1,2)abdg* |
No name | RlLrN* | (1,3)fgha (1,2)bcde & n4dO* |
FunctionsEdit
Functions are the one thing that allows Ħasínū to be infinitely expandable. Functions show what effect does a particular move have, and cannot specify the move itself.
Empty and Meta FunctionsEdit
Empty functions are functions that describe the piece itself, not any particular move. They can still be modified to express such moves, though. Meta functions are functions that describe functions.
- royal([AO])*
- Describes a royal chess piece, one that cannot enter check and must escape threat whenever possible. The parameter AO is only used when there is more than one royal piece. If the value is A, then all royal pieces must be preserved to keep the game going; if the value is O, then only one has to be preserved.
- promote(condition, promotee1, [promotee2], ...)*
- Describes potential promotees. "Condition" means when a promotion can happen. This is usually done in text form to ease human parsing. "Promotees" are listed after the condition, and can be in text or in Ħasínū notation.
- fe([identifier], [exceptions])*
- Describes a piece that cannot be captured; an Iron piece. "Identifier" is either "inclusive" or "exclusive". If inclusive, then Exceptions identify which attempted captures of the target piece is illegal; if "exclusive", then Exceptions identify moves that can capture the Iron piece.
- group(function1, function2, [function3], ...)(move)*
- Syntactic sugar allowing multiple functions to act on a single piece. For example, function1(function2(function3(function4(1×4dD))))* can be rewritten group(function1, function2, function3, function4)(1×4dD)* There is an even shorter form: [function1,function2,function3,function4(move)]*, but is not commonly used due to its crypticness.
- sz(X, [Y])*
- This describes the size of the piece.
The Function functionEdit
With syntax function(function name, [parameters])*, the function function defines a function. Each function may have parameters, which, thanks to the nature of chess and its ilk, are easily standardised.
- range
- What moves does this function affect, as described by the moves section above.
- FE
- Whether friendly, enemy or both sides are affected.
- PA
- Whether the action is passive (can be activated by enemy action) or active (can be activated by the piece's action).
- GL
- Whether a function is greedy (will attempt to complete the longest move at all costs) or lazy (will stop at the first impedance.)
This function is used when you need to define a new type of move. For instance, the Inchworm pieces require such definition. This is how a function function is used:
The Inchworm function is defined as thus: function(inchworm,range,[auto],[vuln])* Where "auto" defines whether or not the piece will immediately consolidate without the need of a move and "vuln" defines whether or not a piece can be captured at the endpoints, anywhere in the line connecting the endpoints, or not at all.
General functionsEdit
These functions describe what moves a particular move has.
Impedance functionsEdit
- j(range, [FE], [number])*
- Describes a move that can jump over other pieces. If there is a limitation over how many pieces it can jump over, it is noted in the [number] section.
- nj(range, [FE])*
- Describes a move that cannot jump over other pieces.
- im(range, [FE], [PA], [number])*
- Describes a piece that can immobilize (lock) other pieces from moving. [FE] shows which pieces are affected. [PA] determines if a piece that walks into the range is immobilized. [number] restricts the amount of pieces it can keep from moving.
Capturing functionsEdit
- m(range)*
- Describes a move that may not be used for capture.
- c(range)*
- Describes a move that must be used for capture.
- i(range, [FE], [PA])*
- Describes rifle-capture, capturing without moving. I stands for igui, Japanese for exactly the same move. Aliases include rifle().
- burn(range, [FE], [PA])*
- Describes a burn, a mass rifle-capturing of all pieces in the range.
- rpg(range, [FE], [GL])*
- Describes a sliding move that captures any piece in its way. A rampaging Rook can run from a1 to a8, capturing anything on a2 - 7 on the way. What happens to friendly pieces is determined by the FE parameter.
Timing functionsEdit
- ataction(number, move)*
- Describes a move that is legal every number times the piece moves.
- atmove(number, move)*
- Describes a move that is legal every numberth turn.
PseudofunctionsEdit
These functions do not modify the usage of a particular move but instead define moves that are too difficult for one to express in more traditional terms.
- INF(x, y)*
- Describes a lion move to all squares in the range. x is the largest x-coordinate that the piece may travel to, and y is the largest y-coordinate that the piece may travel to. INF(x, x)* can be traditionally written as n(1×8d)*
- n(...)*
- Defines a loop. n can be anything subject to the same restrictions as S in S×NdR or remain n. n stipulates how many times a loop may occur, and is infinite when it remains n.
Example: Pawn minus en-passantEdit
atmove(1, m(2×1dN)) & m(1×1dN) & c(1×2dNE-NW) & promote(//reach rank eight, n8d, n4dO, n4dD, (2,1))*
The Backslash and the double-slashEdit
The backslash is used when you want to embed Betza into Ħasínū. For example, a Rifle-capturing queen is written in pure Ħasínū as m(n8d) & group(i, c)(n8d)*, but with the backslash it can be simplified to \mQ & i(\cQ)*.
Occasionally some moves simply elude the usage of functions and so must be rendered as text. When this happens, it's prepended by a double-slash //, much like a Java comment. The difference between text and comment is that a // ends in Hasínū at the next punctuation symbol.
NotesEdit
- ↑ The complete list is: HHasihnuu, Hasinu, RLUWDCP, Reluwadecap, a Rather Long and Unwieldy Way of Describing Chess Pieces, Long and Long Notation
- ↑ barring the Invention Double Reacharound
- ↑ The Anchorite is termed by Betza the Aanca.