Check out Glinski's Hexagonal Chess, our featured variant for May, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Single Comment

Game Courier Developer's Guide. Learn how to design and program Chess variants for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, Feb 5 02:56 PM UTC in reply to Daniel Zacharias from 05:09 AM:

Chess. When a Pawn promotes, it moves twice in a turn. The official and up-to-date version of movepiece.js that Game Courier runs handles this by recognizing that multiple legal moves for the piece begin with the same initial move. It then opens up a requester asking the player which of these multipart moves he wishes to make. It works this way so long as each Pawn promotion was previously listed as a separate multipart legal move. The same principle may be applied to other multi-movers.

Marseillais Chess, which is currently being featured, allows any piece to move twice. It does this by rewinding the move and splitting it into separate parts. So after a player has moved once, he will be given the option to move again. Unlike the first method, which treats a multipart move as a single and distinct legal move, this treats a multipart move as one legal move followed by another. Pawn promotion in Chess used to work this way on a smaller scale. Instead of rewinding a move, it would use the askpromote command to ask what to promote to.

So you have two options. One is to precalculate all possible combinations of two moves a piece may make and list each as a separate legal move. The other is to list only the first move as legal, then to handle the second part after the first part has been made. The latter works better for Marseillais Chess, because it also allows two different pieces to move on the same turn, and that could become difficult to calculate if you tried to handle each combination of two moves as a separate legal move. The former method may be better when double moves are limited to one piece.

Note that when you allow double moves for one piece, you also have to take precautions against other pieces having double moves. With the Pawn, its second move was of a different move type than its first move, and the code had to make sure other pieces were not promoting. With a piece that has two normal moves on one turn, making sure other pieces do not make a second move will be more complicated.