Download WinBoard Alien Edition (including simplistic Dark-Chess engine!)
Download 9x9 Go board bitmap
Source Repository (git)
Nebiyu Engine for Checkers, Reversi, Go, Amazons and Spartan Chess by Daniel Shawul
There now is an experimental version of WinBoard that has some enhancements to facilitate its use as GUI for non-Chess-like games (with legality checking off). In addition toa all th eregular new features of WinBoard 4.5, it has some weird novelties. Such as entering multiple moves per turn (by keeping the control key pressed to suppress the turn change, or suffixing the move with a comma in text mode). Variant alien allows the engine to update the board after each move, to show side effects that WinBoard was not aware of. Variants checkers, reversi and go implement the side effects of moves in those games automatically (removing jumped-over pieces, color-flipping sandwiched pieces, or removing surrounded chains, respectively).
There also is a new "variant dark" that implements "Dark Chess". Here the board is partly blacked-out when you are playing an engine, as well are moves and PVs. In other modes the flip-view button controls darkening, so that you have the choice to watch the complete game, or see it from (one of) the engine's point ofview.
There also is a new "variant amazons", which forces double-move entry (one move, one drop per turn), and knows the move rules for Amazons. (But you could also play it with other pieces than Queens...)
To move multiple pieces per turn, or move one piece multiple times (e.g. to make multiple captures in checkers), you must keep the Control key pressed during all but the last 'leg' of the move. In Amazons the Control key is ignored, and you always have to enter exactly two moves per turn. The first leg (moving an Amazon) leaves the moved piece selected, so you can enter the second leg by simply clicking the square where you want this Amazon to throw the arrow. Another way would be to drag the Amazon there. In principle, with legality testing off, you can also have another Amazon throw the arrow.
After entering a non-final leg of a move (i.e. with Ctrl pressed), the piece you moved will stay the selected one. So you can make follow-up legs with that same piece (as in multiple captures in Checkers) by simply clicking the next to-square for that piece. If you want to move another piece, you can simply click or grab any of your other pieces, as usual.
In some games it is allowed to pass your turn. You can do this by clicking the clock of the opponent, to give the turn to him.
Several extensions to WinBoard protocol had to be made to support more general games. The pass (a.k.a. null move) is sent as "@@@@" (without the quotes) in stead of the move (so "move @@@@" from engine to GUI). Composite moves are sent from GUI to engine in a comma-separated list, e.g. "f2h4,h4f6" for moving from f2 via h4 to f6. In a Chess variant, "e1b1,a1d1" could indicate a non-standard castling. From engine to GUI, however, each leg of a move must be sent in a separate "move" command, a comma appended to the move suppressing the turn change. So "move f2h4," followed (on a new line) by "move h4f6". Note that in Amazons, the second leg of the move (the throwing of the arrow) must be given as a move of the throwing Amazon to the square where the arrow lands.
A new engine-to-GUI command was added, to allow the engine to set up a board in the GUI. The syntax of this command is "setup FEN", where FEN is the FEN string for the desired position. In "variant alien", this command can be sent to the GUI at any time, to do proper board updating that WinBoard could not do automatically. In other variants this command is only accepted from the first engine, when legality testing is off, no moves have been made yet, and the user did not set up a position. This to allow engines to set up the opening position of variants that WinBoard does not really know.
The "setup" command also has a more elaborate form, "setup (PieceToCharTable) FEN", where PieceToCharTable indicates the letters used to identify the various pieces in the following FEN. WinBoard would then also use these for sending FENs to the engine, and generating SAN moves in PGN. The format of the PieceToCharTable is the same as for the WinBoard /pieceToCharTable option. This means it is guaranteed that when you use "PNBRQKpnbrqk", the standard letters for the pieces are used. Possible additional pieces the GUI supports must be slipped in between Q and K. Their meaning might depend on the implementation, but as this command only works with legality testing off, that does not really matter. All that matters is that they all produce different graphical symbols on the board.
To allow an engine to implement features like -showTargetSquares and -oneClickMove in a variant that the GUI does not know the rules of, several new commands are added to the protocol. For engines that send "feature highlight=1" to the GUI at startup, the GUI will send a "lift SQ" for every piece the user selects (SQ being the square it was on, e.g. "e2"), and a "put SQ" for every to-square that was indicated for the last-selected piece. An engine can reply to any of these with a command "highlight COLORFEN", where the COLORFEN indicates color markings for each board square, according to R = red and Y = yellow. (Other colors might be supported in the future.) Like "4R3/8/8/8/8/8/8/4Y3" to mark e8 with a red dot, and e1 with a yellow dot. The markers will disappear automatically when the user up-clicks. The engine can also send a command "click SQ", to perform a left mouse click on behalf of the user, to help him finish the move entry, and thus implement one-click moving. This only works when legality testing is off.
For Dark Chess, moves will not be sent from GUI to engine, as often you won't be able to see the oponent's move, as it is in the hidden part of the board. In stead the engine will receive an "infoboard FEN" command, where the FEN only contains the pieces it can see. All fields of the FEN after the color field are bogus, (as they describe information you should not be able to know), and should be ignored by the engine. The engine will also receive such an "infoboard" command in response to its own move, to let it know what it could see after this move, but before the opponent's reply. The engine can distinguish these situations by the color field in the FEN.
Passing a turn is indicated in SAN as "pass". On input, the non-compliant form "null" is also recognized, as is the protocol format "@@@@". (Compare "O-O", "00" and "e1g1" for castling in Chess.)
Composite moves are indicated by using normal SAN for each leg of the move, separating the legs by commas, in variants that allow them. In other variants commas in the game input are simply ignored. Follow-up legs with the same piece use a newly defined disambiguation rule: they can be cast in the format of only specifying the to-square, in variants where this cannot be confused with Pawn moves (because Pawns are not participating), or in variants where multiple moves are always with the same piece (such as Checkers).