Implement Spartan Chess This required new pieces, their parsing in algebraic moves and promotions, a lot of promotion code because Hoplites can promote, implementation of the duple-check rule by letting in_check recursively call itself after abdicating the first king, making the test for nr of kings less critical, and choosing a promotion piece in the mate test (because promotion to K could solve the mate).
Implement S-Chess The value drops=2 in the gameState controls whether gating in pieces from the holdings is possible, and implies holdings even if holdings=0. New incarations of Cardinal and Marshall are added to the piece types, under the names H and E. Gating has to be entered as promotion ('/' in stead of '=' is allowed). King does no longer have to be the last piece type; a macro PIECES has been added to indicate the number of piece types.
Finish implementation of Shogi Shogi promotions were implemented by introducing a new promoType value (3), which can be set y 'S' in the board status line. Demotion of pieces takes place on capture, by tracing them back with was_promoted() to their original, which now is not automatically Pawn, but derived from the piece mentioned in the move string. Like in Bughouse a promoted Queen is not distinguished from a primordial one on the board, Golds which are promoted Pawns / Lances / Knights / Silvers all look the same as a primordial Gold. The Dragon Horse and Draon King look different from Bishop and Rook, though, and are indicated by the letters I and J on the board. The promotion is indicated in the SAN move by suffix =G, =I or =J. Deferral is not indicated. On input == is understood as deferral, =+ or =^ (or in fact =<ANY PIECE> as promotion).
Initial boards for the various variants In the new logic, the 'category', i.e. the name of the subdirectory of 'data/boards' now should correspond to the variant name used in the XBoard client. The default setup for the variant is then in the file '0' inside that, and is used wen no explicit board name is given.
Check-in Lasker-2.2.3 tar ball from samba.org