Check out Grant Acedrex, our featured variant for April, 2024.

Enter Your Reply

The Comment You're Replying To
H. G. Muller wrote on Thu, Jan 14, 2010 11:02 AM UTC:
You identified the correct line; unfortunately this is the most cryptic line of code in the entire micro-Max program. Amongst other things, it caluclates a value for the variable V, which is later added to the piece code on the board (b[y], y is the destination square) to perform promotion. But promotion actually happens in 3 steps in micro-Max; when a Pawn reaches 6th rank or 7th rank the code for it is already altered to indicate its increase in value (for if it is captured), by adding 64 to the piece code. (But these 'heavy Pawns' are still recognized as pieces that move like a Pawn, as the move generator ony looks at the lowest 4 bits of a piece code.)

To save characters (the purpose of micro-Max was to make it as small as possible) the variable V is also does double duty to count for the score, so stepping to 6th rank or from 6th to 7th earns 64 centi-Pawn. Stepping to 8th rank finally produces a Queen code on the board, and supplies the remainder of the score bonus.

Now for Makruk this is in fact very convenient: if V ends up non-zero after that line, you would have a Makruk promotion. Adding the line

if(V)b[y]=u|7,V=640;

directly behind it would do this. (It sets the piece code to 7, the code for the Med, and assigns a bonus of 80 centi-Pawn, as V is still devided by 8 in the next line for games with a Queen value below 250. (And the fmax.ini defined it as 180 for Makruk.) This would then happen in every variant, however, so it would break Fairy-Mx for playing any other vriant thn Makruk. To prevent that, we could write in stead:

if(V&&w[7]==181)b[y]=u|7,V=648;

and then make the value of the queen in the fmax.ini file 181 (and make sure it is not 181 in any other variant) as a way to activate the line. Then we would not have to change the format of the fmax.ini file to include an explicit promotion-zone width.

Anyway, a beta version of WinBoard that supports Makruk can now be downloaded from 
http://home.hccnet.nl/h.g.muller/winboard.zip . 
This still uses B/E for the white and black Bishops, and Q for the Med. I only want to change that to S and M after I fixed Fairy-Max to handle mirror-image white and black pieces under the same name.

Edit Form

Comment on the page Fairy-Max

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