Helpmate Analyzer - Twins

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.