Author: Robert Hyatt
Date: 06:15:29 04/04/00
Go up one level in this thread
On April 04, 2000 at 08:05:47, Tony Werten wrote:
>On April 04, 2000 at 05:20:36, Dan Newman wrote:
>
>>
>>First, I run out all the captures w/o stopping to create an array with running
>>totals (what I called current balance, above)--with the total from the view
>>point of the side that makes the capture:
>>
>> Rxn 300 white is up 300
>> rxR 200 black is up 200
>> Rxr 300 white is up 300 again
>
>Ok in this case it works. But suppose the sequence is:
>
> Qxn 300
> rxQ -600
> RxR -100 ( R was on same line as Q, so couldn't take first )
>
>>
>>where N=300, R=500. Then, starting at the tail end, I "minimax" up through
>>that array using the following bit of code:
>>
>> while( ns ) {
>> if( seelist[ns] > -seelist[ns-1] ) seelist[ns-1] = -seelist[ns];
>> ns--;
>> }
>>
>>(The running totals were maintained in seelist[]; ns starts out set to the
>>number of entries-1)
>
>seelist[0]=300
>seelist[1]=-600
>seelist[2]=-100
>
>ns=2: if (-100)>600 not the case
>ns=1: if (-600)>-300 not the case
>
>>
>>Then I return seelist[0].
>
>wich would be 300 while the score should be -100
>
>Am I missing something here ?
>
>Tony
I think your three scores are wrong. His stuff is coded in 'negamax'
convention, which means the 3 values should be:
300
600
-100
then -100 > -600 is true
-100 > -300 is true
if I read his code right.
In negamax, each score is always +=good for side on move, -=bad for
side on move... then it should work..
>
>>
>>I find that I don't really understand that bit of code above and have to
>>work it out with pen and paper (on several examples) to see what it does...
>>
>>-Dan.
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.