Author: Tim
Date: 01:52:42 03/01/00
Go up one level in this thread
Hello, Dr. Hyatt.
I am talking about when presult is 2 not 1.
Crafty returns 2 when next condition meets during pondering.
"pondering was done, but the ponder search
terminated due to either finding a mate, or the
maximum search depth was reached. the result of
this ponder search are valid, but only if the
opponent makes the correct (predicted) move."
But you didn't assign value = last_root_value when pondering result was 2.
if (presult == 2) {
if((From(ponder_move) == From(move)) &&
(To(ponder_move) == To(move)) &&
(Piece(ponder_move) == Piece(move)) &&
(Captured(ponder_move) == Captured(move)) &&
(Promote(ponder_move) == Promote(move))) {
value=last_root_value; <==== Didn't you forget to add this line?
presult=1;
if (!book_move) predicted++;
}
else presult=0;
}
ponder_move=0;
thinking=1;
if (presult != 1) {
strcpy(whisper_text,"n/a");
last_pv.pathd=0;
last_pv.pathl=0;
display=tree->pos;
value=Iterate(wtm,think,0);
}
last_pv=tree->pv[0];
last_value=value;
if (abs(last_value) > (MATE-300)) last_mate_score=last_value;
thinking=0;
if (!last_pv.pathl) {
if (value == -MATE+1) { <======= This line is not executed when
pondering result was 2.
Because you didn't assign value.
over=1;
if(wtm) {
Print(4095,"0-1 {Black mates}\n");
strcpy(pgn_result,"0-1");
}
else {
Print(4095,"1-0 {White mates}\n");
strcpy(pgn_result,"1-0");
}
}
I added value=last_root_value. But I don't think it works in every cases.
Thank you.
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.