Author: Zach Wegner
Date: 17:03:43 10/08/04
Go up one level in this thread
I don't know how to get WAC 141 in one second, but I know some things in your code to improve it. First, you should not dynamically allocate storage for moves (do not declare the array in search()), but rather have a large array of size MAXMOVES * MAXPLY (it can probably be less) that is indexed by a pointer array indexed by ply. If this seems confusing, heres some pseudo-code: mv movestack[MAXMOVES * MAXPLY]; mv *firstmove[MAXPLY]; ... firstmove[ply + 1] = gen(firstmove[ply]); This requires your gen() to return a pointer to the element after the last move used, which shouldn't be too difficult. Second, it seems you are not using fractional extensions the way most people do. The depth parameter is measured in some constant > 1 that is proportional to a ply. I suppose floats could be used, but is important that the depth parameter is not an int with 1 equal to a ply. The idea is that for some extensions you do not want to extend a whole ply for just one occurence, but add a little bit of a ply to the depth that could help trigger an extension later. As an example, at ply X you have a condition met and you want to extend a half of a ply. Then at ply X + 2(say) you have the same (or other) condition met, and you extend a half of a ply again. The net extension is then just one ply, while in your implementation it would not be extended because the half ply would be rounded off at each ply. Or maybe I just misunderstood your code... Regards, Zach
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.