Check out Janggi (Korean Chess), our featured variant for November, 2024.

Enter Your Reply

The Comment You're Replying To
Matteo Perlini wrote on Tue, Nov 20, 2012 12:34 PM UTC:
**M. Winther wrote:** Zillions forces you to make a move that protects the
king, and you cannot make another move.

So it is easy to enforce the rule that an enemy pawn must be captured.
Simply add another "move-type" in every piece definition. This move type
is exactly the same as the normal move-type except that (1) it is set to
higher priority (2) you must verify before the move is executed that an
enemy pawn is captured: "(verify enemy?)(verify (piece? Pawn))". 

This will enforce the capture of an enemy pawn provided that the king is
not in check. It will still enforce the capture of a pawn if the king is
protected thereby.
***

I have done this procedure, as you can see in the zillions file I have
posted in the first post of this discussion. I have a higher priority
move-type, called “tasty-moves”, for each piece that check if it is
possible to capture a pawn. If this is not possible , then you can make
“normal” moves.

But there is a problem, a big problem. If the king is in check and you can
capture a pawn, for Zillions’ AI the only possible moves are those in
which you capture a pawn, but with those moves you cannot get the king out
of check, so it is checkmate. Not what I want.

There is another problem. The situation is that a knight is protecting a
king from an enemy bishop: white has Ke1, Nd2; black has Bb4. But there is
an enemy pawn in e4, so the knight can capture it. Now, I want that the
knight doesn’t move because if it do so, the king would be in check. But
for Zillions’ AI there is no possible move, so it is stalemate. Not what
I want.

Any ideas?

p.s. I sent you an e-mail.

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.