Author: Robert Hyatt
Date: 15:20:16 05/20/98
Go up one level in this thread
On May 20, 1998 at 12:48:01, Roberto Waldteufel wrote: > >On May 20, 1998 at 06:40:19, Inmann Werner wrote: > >>I know, that if a move is repeated 3 times the game ends draw. But >>what is the real definition of this? when does the game end really? >> >>(I hated my program, when I played against Fritz (slowed down) in a >>leading position and got a draw because of move repeats, which I have >>not implemented) >> >>Thanks >> >>werner inmann > >If your program uses hash tables, you can easily avoid this problem. In >the hash table, along with bounding values for the position, reserve one >bit to indicate if the position has occurred previously in either the >current variation, or earlier in the game. If so, score the position as >a draw and exit without any searching. You do not have to wait for the >third occurrence of the position for the purposes of tree searching - >the second occurrence is enough. > >Roberto This works, but introduces a few problems that must be solved. You must be sure that such "open" entries never get replaced, until they have been "closed" (when unmaking the move that led to them) which has a small cost associated with doing this. You also can't call Search() recursively from the same position, as is done in "internal iterative deepening" because the position would already be "open" and get scored as a repetition, even though it is just being searched to a shallower depth. And you have to be sure that there are no paths out of search that don't clear this bit, plus you probably are going to store the *real* game history positions in the table with a "don't use this score/move, but note that if you hit this entry we are at a repetition".
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.