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
>>qsearch.
>>
>>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;
{
bestscore=evaluate();
for all capture_moves
score=-quiesce(...) **
if (score>bestscore) bestscore=score;
next
return(bestscore)
}
** if this returns a "you're checkmated score" then it should never be higher
than bestscore.
Tony
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.