Check out Smess, our featured variant for February, 2025.

Enter Your Reply

The Comment You're Replying To
🕸Fergus Duniho wrote on Mon, Feb 5, 2024 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.


Edit Form

Comment on the page Game Courier Developer's Guide

Conduct Guidelines
This is a Chess variants website, not a general forum.
Please limit your comments to Chess variants or the operation of this site.
Keep this website a safe space for Chess variant hobbyists of all stripes.
Because we want people to feel comfortable here no matter what their political or religious beliefs might be, we ask you to avoid discussing politics, religion, or other controversial subjects here. No matter how passionately you feel about any of these subjects, just take it someplace else.
Avoid Inflammatory Comments
If you are feeling anger, keep it to yourself until you calm down. Avoid insulting, blaming, or attacking someone you are angry with. Focus criticisms on ideas rather than people, and understand that criticisms of your ideas are not personal attacks and do not justify an inflammatory response.
Quick Markdown Guide

By default, new comments may be entered as Markdown, simple markup syntax designed to be readable and not look like markup. Comments stored as Markdown will be converted to HTML by Parsedown before displaying them. This follows the Github Flavored Markdown Spec with support for Markdown Extra. For a good overview of Markdown in general, check out the Markdown Guide. Here is a quick comparison of some commonly used Markdown with the rendered result:

Top level header: <H1>

Block quote

Second paragraph in block quote

First Paragraph of response. Italics, bold, and bold italics.

Second Paragraph after blank line. Here is some HTML code mixed in with the Markdown, and here is the same <U>HTML code</U> enclosed by backticks.

Secondary Header: <H2>

  • Unordered list item
  • Second unordered list item
  • New unordered list
    • Nested list item

Third Level header <H3>

  1. An ordered list item.
  2. A second ordered list item with the same number.
  3. A third ordered list item.
Here is some preformatted text.
  This line begins with some indentation.
    This begins with even more indentation.
And this line has no indentation.

Alt text for a graphic image

A definition list
A list of terms, each with one or more definitions following it.
An HTML construct using the tags <DL>, <DT> and <DD>.
A term
Its definition after a colon.
A second definition.
A third definition.
Another term following a blank line
The definition of that term.