Computer Chess Club Archives




Subject: Re: Finding mate in the quiesce search

Author: Tony Werten

Date: 06:58:59 08/24/04

Go up one level in this thread

On August 24, 2004 at 09:33:29, Alessandro Scotti wrote:

>On August 24, 2004 at 09:26:36, Uri Blass wrote:
>>On August 24, 2004 at 08:45:56, Alessandro Scotti wrote:
>>>What value do you return when you find a mate in the quiesce search? I used to
>>>return a "mate" score but then I found this is not correct because many paths
>>>were not considered in quiesce, so sometimes I got a "mate in n" score at the
>>>root which wasn't really a forced mate. I've patched the bug by returning a
>>>fixed value for now, but... which value is best?
>>I return mate.
>>I simply do not keep the mate backward.
>>If I have RxR RxR mate then the capture RxR is not good and I return the same
>>value that I return when RxR is illegal.
>>When you are in the qsearch you evaluate the position.
>>The evaluation of the position is a lower bound for the evaluation of the
>>you cannot return mate against the side to move if the side to move is not in
>>position that you search all of it's moves and the worst that you can evaluate
>>for that side is the static evaluation.
>Ok let me put this in code. So far I have used:
>    return quiesce( ... );
>I will now use:
>    int result = quiesce( ... );
>    if( isMate(result) ) result = -5000; // Any "bad" value...
>Is that correct?

function quiesce(...):integer;

for all capture_moves
   score=-quiesce(...)  **
   if (score>bestscore) bestscore=score;



** if this returns a "you're checkmated score" then it should never be higher
than bestscore.


This page took 0.01 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.