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.