Author: Uri Blass
Date: 17:54:49 10/08/04
Go up one level in this thread
On October 08, 2004 at 20:03:43, Zach Wegner wrote: >I don't know how to get WAC 141 in one second, but I know some things in your >code to improve it. It is very easy to get WAC141 in one second. Using illogical recapture extensions as Stuart does help but if illogical recapture extensions are allowed then there are better ideas. Use the following special Wac141 extensions. If root position is identical to 141 root position If the first move is c1xf4 then do 1 and 2 in the next 2 lines 1)extend by 1 ply 2)If the second move is d6xf4 then do 1 and 2 in the next 2 lines 1)extend by another ply 2)If the third move is h4xh5 then do 1 and 2 in the next 2 lines 1)extend by another ply 2)If the fourth move is g6xh5 then do 1 and 2 in the next 2 lines 1)extend by another ply 2)If the 5th move is h1xh5 then do 1 and 2 in the next 2 lines 1)extend by another ply 2)If the 6th ply is f4-h6 then do 1 and 2 in the next 2 lines 1)extend by another ply 2)If the 7th ply is h5xh6 then extend by anpther ply If you claim that it is cheating then I claim that using counter productive recapture extension is also cheating by the same logic. My special 141 extensions will be triggered only in position 141 and the price of one if is very small so practically my extensions will help to solve 141 fas Uri 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 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.