Author: Dann Corbit
Date: 12:35:32 01/22/04
Go up one level in this thread
Here is the probe from Crafty's search: /* ************************************************************ * * * now call HashProbe() to see if this position has been * * searched before. if so, we may get a real score, * * produce a cutoff, or get nothing more than a good move * * to try first. there are four cases to handle: * * * * 1. HashProbe() returned "EXACT" if this score is * * greater than beta, return beta. otherwise, return the * * score. In either case, no further searching is needed * * from this position. note that lookup verified that * * the table position has sufficient "draft" to meet the * * requirements of the current search depth remaining. * * * * 2. HashProbe() returned "UPPER" which means that * * when this position was searched previously, every move * * was "refuted" by one of its descendents. as a result, * * when the search was completed, we returned alpha at * * that point. we simply return alpha here as well. * * * * 3. HashProbe() returned "LOWER" which means that * * when we encountered this position before, we searched * * one branch (probably) which promptly refuted the move * * at the previous ply. * * * * 4. HashProbe() returned "AVOID_NULL_MOVE" which means * * the hashed score/bound was no good, but it indicated * * that trying a null-move in this position would be a * * waste of time. * * * ************************************************************ */ switch (HashProbe(tree, ply, depth, wtm, &alpha, &beta, &mate_threat)) { case EXACT: if (alpha < beta) SavePV(tree, ply, 1); return (alpha); case EXACTEGTB: if (alpha < beta) SavePV(tree, ply, 2); return (alpha); case LOWER: return (beta); case UPPER: return (alpha); case AVOID_NULL_MOVE: do_null = 0; }
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.