Check out Janggi (Korean Chess), our featured variant for December, 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

Play-test applet for chess variants. Applet you can play your own variant against.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Jul 18, 2020 04:54 AM UTC in reply to H. G. Muller from 04:54 AM:

When it discusses the code for promotion in the Post-Move code, it mentions how to reject a move R a1-f1; Q-a1;. I don't understand the Q-a1. Must pieces be promoted on their starting square? Why not on f1? Are the moves also evaluated right to left?

That was a typo. I have changed it to f1.

Apparently the input format is such that promotion is written as a separate, extra move. How is such a sequence of moves handled by the basic input system before the Post-Move code is invoked? Their seems to be no provision for multiple moves, just origin, dest, moved and old. Yet you can test the board (spaces) to check whether promotion took place. Are all moves of the sequence performed, and do the variables only convey the parameters of the last move that was processed? Do promotion 'moves' alter any of these variables?

While a regular move would change all these variables, a promotion would not. This allows promotions to be handled as second moves without coding the game as a multi-move game.

What happens when you promote an empty square? Is that equivalent to dropping a piece on that square? (That would be useful e.g. for pieces that swap location with other pieces.)

Drop has a technical use in Game Courier, which means moving a piece from an off-board area to the board, as in Shogi. Regular drops are not used for promotion. Adding a piece to a space is used for promotion, and I do think I describe this with the term free drop. In adding a piece, or performing a free drop, the piece comes from nowhere and replaces whatever was on the space. Promotion is handled by adding a piece to an occupied space. It is also possible to add a piece to an empty space, as is done in the new variant Fertile Queen Chess.

Can you 'promote' something to an empty square?

No, you can add a new piece to an empty square, but that would not be called promotion.

In several places it is mentioned that the Post-Game code is executed only after all moves have been performed. What does this 'all moves' refer to? Normally (ie. for non-promotion) there would only be a single move to perform, right? Namely the one the user entered.

It means all the moves a player enters on one turn. Game Courier began as a dumb board simulator without any programming language for enforcing rules, and it can still be used without rule enforcement. So, it works by playing all moves a player enters in sequence before updating the position. It does not normally work by evaluating each move before performing it.

What is the convention for entering non-implied locust captures, like for the Chu-Shogi Lion? Is it capture followed by a move to the destination, or a direct move to the destination followed by promoting the locust victim(s) to empty squares?

I have never programmed Chu Shogi, and I'm not sure what a locust move is. Ask Adam DeWitt what he did. If it's the same as a grasshopper move, there is a function for that, but I suspect it's not.

Should automatic locust captures, such as for the Ultima Long Leaper, be explicitly specified, or should they be automatic side effects of the move to the destination?

Since you mentioned the Long Leaper specifically, there is a built-in function called checklongleap. However, I didn't program Ultima. Antoine Fourrière did. So, I'm not sure if there were extra details for programming the piece. I am just answering questions quickly right now. I'll have more time to dig into things later.