Twins use Popeye solving program syntax, with one little difference: in case of Zero-position first twin must be labeled 'a)', the second - 'b)' etc, and in case of normal twins the first is 'b)', the second - 'c)' and so on. Helpmate Analyzer supports the following subset of Popeye twin types:
Twin template | Description | Example |
---|---|---|
Move <square1> <square2> | Move the piece from square1 to square2. A piece accidentally standing on square2 will be removed. | move a3 b4 |
Exchange <square1> <square2> | The pieces on <square1> and <square2> exchange places. | exchange a3 b4 |
Remove <square> | The piece located on the square specified is removed. | remove e5 |
Add <color> <piece><square> | Add pieces. | add black Sa6 |
Substitute <piece1> <piece2> | All pieces of type <piece1> are replaced by pieces of type <piece2>. | substitute R B. All rooks are replaced by bishops. |
Rotate n | Turns the board by n degrees to the left (n=90, 180, 270). | rotate 180 |
Shift <square1> <square2> | Shift the whole position into the direction determined by the two squares entered. | shift a1 a2. All pieces are moved one square up. |
PolishType | All pieces change colour. | |
Mirror a1<-->h1 | Mirrors the position on the vertical middle line. | |
Mirror a1<-->a8 | Mirrors the position on the horizontal middle line. | |
Mirror a1<-->h8 | Mirrors the position on the diagonal a8-h1. | |
Mirror a8<-->h1 | Mirrors the position on the diagonal a1-h8. |
More than one change may be specified, for example rem e7 add white qe8 . By default the changes refer to the position initially set. Alternatively the changes can be applied to the position solved most recently. Just enter "continued" (or "cont") immediately after "twin". Example: cont rem a1 .
Helpmate Analyzer support also more complex twin types that cannot be defined by typical twin types. Just enter "fen" and position in FEN notation. Example: fen 2k5/8/3K4/8/8/8/3R4/8.
Helpmate Analyzer does not support Duplexes, but there is a workaround: you can write a twin in the form of "b) PolishType" (if there is no pawn) or "b) PolishType Mirror a1<-->a8 " (in the presence of pawns).