Check out Modern Chess, our featured variant for January, 2025.

Enter Your Reply

The Comment You're Replying To
🕸Fergus Duniho wrote on Tue, May 2, 2017 01:14 AM UTC:

I foresee three main diffculties for me in implementing Game Courier Presets for Apothecary Chess 1 and Apothecary Chess 2.

1.The move enforecement for the griffin and aanca.

The one-step move can be handled by checkleap, and the two-step move can be handled by checktwostep, as the Horse move in Xiangqi is. Moving further could be trickier. Using a separate checkapath function for each possible move longer than two spaces should work, but it would be fairly brute force.

The description for logride says that it can be used for turning riders, such as the griffin and aanca, and it describes how. But to use it, you should use logical directions, and for consistency's sake, you should define all piece movement in terms of logical directions. It looks like I do not have a tutorial on using logical directions, but they are essentially what Zillions-of-Games normally uses.

A third option is to wait for me to write a new function that will better handle turning riders for mathematical directions.

Also the move enforcement for pieces that have just move abilities like the advanced omega chess knight. How do I differentiate between just moves and regular moves?

This is a divergent piece. Look at code for the Pawn for an example of handling a divergent piece. Or look at the code for Cannon moves in Xiangqi.

2.The joker movement. If the regular joker movements shouldn't prove a big trouble as I saw there is an last piece moved variable that I can build from (it seems a bit tedious though),

Yes, for the Joker, keep track of the last piece moved by the previous player, and use its function to check whether the Joker's move was legal.

the trouble is with the insertion of the joker on the regular board as it should move from the pocket square (p2 respectively p9 in the diagram) to a just vacated spot by a friendly piece that is not a pawn or a bruhaha square piece and has not previously moved by turn 12 for white and 18 for black. The worst thing is that two pieces get moved in one turn.

Game Courier can handle double moves, but when they aren't a regular part of the game, it is better to ask a question whenever you move a non-Pawn piece before 12 or 18 moves are up and while the Joker space is still occupied. If the player answers yes, then the Joker move should be added to the move without the player having to make that move explicitly. The ask command can be used for this.

3.The endgame conditions which are suficiently different. Actually that should not be a big trouble as the threefold repetition and the 100 moves (actually 50 but that's just an constant) rule are implemented and counting some points should be fairly easy.

I don't know why you would want to add such complicated endgame conditions, but it is essentially math.

I also noticed a misuse of terminology. You called a Rook an average piece instead of a major piece. The definition of a major piece is one that can checkmate a lone King with assistance only from one's own King. That is, it is enough material to win the game when the only other pieces on the board are Kings. By that definition, the Rook is a major piece. If you want to distinguish the Rook from some more powerful pieces, you should use a different term than major for them.


Edit Form
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.