Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: EPD opcodes and mate scores

Author: Rafael Andrist

Date: 23:15:31 12/17/01

Go up one level in this thread


On December 17, 2001 at 15:06:09, Dann Corbit wrote:

>On December 17, 2001 at 14:53:12, Rafael Andrist wrote:
>
>>In the PGN/EPD specification I couldn't find any human friendly way to indicate
>>the distance to the mate if it is the side the move which will be mated. I know
>>it would be possible with the "ce" opcode but this is a little bit more
>>difficult to read. Is there any way to indicate it in an easy way like the "dm"
>>it does if the side to move mates the opponent? Should I use e.g. "dm -3" or is
>>this a bad idea? Any suggestions?
>
>From the PGN Standard, we have this:
>-------------------------------------------------------------------------------
>16.2.5.7: Opcode "dm": direct mate fullmove count
>
>The "dm" opcode is used to indicate the number of fullmoves until checkmate is
>to be delivered by the active color for the indicated position.  It always
>takes a single operand which is a positive integer giving the fullmove count.
>For example, a position known to be a "mate in three" would have an operation
>of "dm 3;" to indicate this.
>
>This opcode is intended for use with problem sets composed of positions
>requiring direct mate answers as solutions.
>-------------------------------------------------------------------------------
>Because of the statement "by the active color" I think negative numbers are out.
>
>Unfortunately, *most* implementers of PGN ignore the correct use of the ce
>opcode (though I think 32767 should be allowed for 'this is a checkmate' rather
>than used for indication of error).  At any rate, you cannot count on 32767-n
>being ply distance to mate.  All sorts of values are used, and that is why
>distance to mate is unclear.  Because people ignore the standard.

32767-n is wrong too... Please have a look at the standard again.
Most ce-programs are using a 16 bit integer for the score. The range of a signed
integer is [-32768;32767]
in the "ce" opcode -32767 is used for illegal position and the effective "ce"
range for legal positions goes from -32766 to 32766, and -32768/32767 can
internally used for -/+ infinity.


>My suggestion is:
>c0 "Mate in three for the opposing side."

This may be a solution for a single position, but not for a list of 1000 or more
positions. This would also nearly double the needed disk space.

I think i will use a new opcode "om x" (= opponent mates in x) and then add a
"ce" opcode to make it clear for other programs.

Rafael B. Andrist



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.