Check out Symmetric Chess, our featured variant for March, 2024.

Enter Your Reply

The Comment You're Replying To
H. G. Muller wrote on Sun, Jul 11, 2021 07:50 AM UTC in reply to Albert Lee from 03:52 AM:

Ah yes, I mixed it up. Fixed that now.

There still is a problem in the notation. Because the diagram doesn't support location-dependent moving, I implemented it through automatic non-standard promotion through a small additional script embedded in the page, which defines a function WeirdPromotion. And defined 5 different Pawn types, which all promote depending on the rank they land on.

But the SAN generator adds a promotion suffix when the type after the move isn't the same as before the move, and all the 5 Pawn types currently havetheir ID defined as P. So the promotion suffix is ambiguous, and this might lead to problems when, on pasting a game, the diagram encounters a move like e5=P. Besides, in the context of this game it looks silly to have promotion suffixes, when promotion is automatic. Not sure how I can address that in general, though.

[Edit]

The notation problem seems solved. I now suppress writing a promotion suffix when the promoted piece has the same ID as the original piece, even when it actually is a different piece type. In principle the SAN generator + parser should be resistant against different piece types having the same ID; its decision to add disambiguators is not based on the piece type, but the piece ID. So if two pieces that have the same ID can move to the same square, it will add the disambiguator necessary to distinguish the moves. Such ambiguous piece labeling cannot work if the ID appears as a promotion suffix, though; the SAN parser would always take it to be the first piece type (in the legend table) that has that ID. But if there is no promotion suffix, and the only pseudo-legal move with the specified piece to the specified square is a promotion, the SAN parser will interpret the move as that promotion even in the absence of a promotion suffix.

This should in general allow position-dependent moving to be emulated through a custom promotion routine switching the type between types with the same ID, in a transparent way. The only peculiarity here is that the piece with position-dependent move is a Pawn, and that only the first alternative will get the P suppressed in the move notation. The alternative Pawn types will all specify the P in their move notation. E.g.

1. e4 h5 2. e5 h4 3. Pe6 f5 4. Pxf5 Ph3 5. Pf6 Pxg2 6. Pxg7


Edit Form

Comment on the page Consuls

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.