Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty 17.8 question

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.