Author: Uri Blass
Date: 23:06:21 11/18/04
I decided to use modified crafty's code only for the task of reading pgn files(I
understood from Bob that there is no problem with it and I plan to make the
relevant code public) but it seems that Crafty has in it's code irrelevant
lines.
It seems to me that ply<=max_ply happens always.
Here is the relevant code from book.c of Crafty with some comments that I added.
The code is part of the BookUp function of Crafty.
Am I right that discarded++ never happens and it is better if Crafty get rid of
this variable for doing the code more simple to understand?
if (ply < max_ply)
move=ReadNextMove(tree,buffer,2,wtm);
else move=0;
if (move) {
/*ply<maxply because of the last if */
ply++;
/*ply<=max_ply now*/
max_search_depth=Max(max_search_depth,ply);
total_moves++;
common=HashKey & mask_16;
MakeMove(tree,2,move,wtm);
tree->position[2]=tree->position[3];
/*nothing was changed and we still have ply<=max_ply so I do not understand the
reason for the following if and discarded++ seems to never happen*/
if (ply <= max_ply) {
temp_hash_key=HashKey ^ wtm_random[wtm];
temp_hash_key=(temp_hash_key & ~mask_16) | common;
memcpy(bbuffer[buffered].position,(char*)&temp_hash_key,8);
if (result == 0) mask_word|=0100;
else if (result&2) mask_word|=0200;
else if (result&1) mask_word|=040;
bbuffer[buffered].status=mask_word;
bbuffer[buffered++].percent_play=pgn_suggested_percent+(wtm<<7);
if (buffered >= SORT_BLOCK) {
BookSort(bbuffer,buffered,++files);
buffered=0;
strcpy(schar,"S");
}
}
else {
discarded++;
}
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.