The Chess Variant Pages
Custom Search

Enter Your Reply

The Comment You're Replying To
Fergus Duniho wrote on 2020-05-25 UTC

This code is in the Post-Move section, which means it is running after the move has been performed. The ask command does not perform a move right then and there. What it does is insert a move into the moves list. To guarantee that a move is allowed before it is made, you should define what is allowed in the Pre-Game section.

Also, the ask command should be used only as an alternative to entering the notation for a move. Once the ask command has been used on the current turn, the move it adds to the move list will be in the move list, and there will no longer be any need to use the ask command each time the same move is repeated. Remember that when you run Game Courier, it repeats all past moves, but when past moves have already been made, there is no longer any need to ask the player which move to make. Moreover, continuing to do so would stop the game from moving forward.

There are three things to check in determining whether to use the ask command. The first is whether the move made possible by the ask command has already been made. If it has been made, there is no need to ask whether to make the move. If it hasn't been made, there are two other things to check. The White_Pawn and Black_Pawn subroutines are designed to allow optional promotion in games with extended promotion zones, such as Grand Chess. Instead of entering a placeholder for an empty move, such as the skip command, these don't do anything special to mark that a Pawn has not promoted. Instead, they both use this condition to tell whether to use askpromote:

if not $answered and == mln $maxmln:

When the ask or askpromote command is used, it sets $answered to true. But this lasts only for the current turn. It will not help when you repeat past moves. So, this line also checks whether it is the latest move with == mln $maxmln. If a promotion move has not been made, and the command has not been answered on the current move, and it is the latest move, it asks what to promote to. Otherwise, it does not.

Edit Form

Comment on the page Apothecary Chess-Modern page

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.

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.