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.