Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Gerbil implementation request to Bruce Moreland

Author: Andrew Williams

Date: 07:05:42 08/09/01

Go up one level in this thread


On August 09, 2001 at 09:31:02, Alvaro Jose Povoa Cardoso wrote:

>Since you are undertaking the Gerbil educational project, I would like to ask
>you if you could implement Enhanced Transposition Cuttofs (ETC) in Gerbil with a
>switch so that it can be turned on/off.
>I know ETC doesn't give much in chess but I would like to experiment in
>checkers.
>My inplementation is working but it is not elegant at all.
>Since we are dealing with the other player I avoided some complications
>by creating a special version of Hashprobe() wich returns a score and by use of
>an additonal flag informs me if there was a cutoff at the next ply.
>So, and using 'crafty language' I do the following:
>
>for every move at this ply:
>
>Makemove
>
>Score =
>-ETC_HashProbe(tree,ply+1,depth-INCPLY,ChangeSide(wtm),-beta,-alpha,&cutoff)
>
>Unmakemove
>
>if (cutoff) {
>  if (Score >= beta) {
>     return (Score);
>  }
>}
>
>
>Best regards,
>Alvaro Cardoso

Here's my implementation of this in PostModernist:

if(ply < (DEPTH-3)) {
    int m;

    for(m=plystart[ply]; m < plystart[ply+1]; m++) {
        make_move(tree[m].mv);
        if(in_check(OTHERSIDE(whoseTurn))) {
            unmake_move();
            continue;
        }
        // Probe the TT. If found, react appropriately!
        ttr = tt_probe();
        if(ttr != NULL) {
            if(beta <= -ttr->beta && ttr->betaDraft >= (draft-1)) {
                unmake_move();
                return -ttr->beta;
            }
        }
        unmake_move();
    }
}

Note that my hash table has two scores and two drafts per position.

Hope this is useful.

Andrew



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.