Hi Norm,
Thanks for running the tests. It's as I thought, the bug was fixed in 2.3.
My personality changes seem to have added a small increase in strength to 2.2 to bring it up to 2.3 levels. (If in fact it was weaker to begin with? - I dont know - maybe you can tell me.
best,
Jim.
Hi Dann,
In the personality file, I just 'upped' a lot of the parameters.
In the code of 2.2, I added the updated lines from 2.3 that fixed the
bug (I hoped!)
- Code: Select all
///////////// 2.2 'comp.c' /////////////
/* Probe the hashtable for the suggested best move */
Entry = HashProbe(B);
if (Entry) {
BestMove = Entry->move;
score = (int)Entry->score;
}
else {BestMove = NO_MOVE;fprintf(stdout,"Could Not Find First Ply Hash Entry!\n");}
if (BestMove == NO_MOVE) {fprintf(stderr,"No Best Move!\n");while (1);} <---- problems start here ?
/* If we aborted the search before any score was returned, then reset to the
* previous ply's move score */
if (AbortFlag && BestMove == NO_MOVE) score = PreviousScore;
/* Otherwise store what we've found */
else {
PreviousScore = score;
Previous = BestMove;
}
BestMoveRet = Previous;
/* Go to the next depth in our iterative deepening loop */
depth++;
////////////////////////
And here's the fix in 2.3 comp.c
///////// 2.3 'comp.c' /////////////////
/* Probe the hashtable for the suggested best move */
Entry = HashProbe(B);
if (Entry) {
BestMove = Entry->move;
score = (int)Entry->score;
}
else {BestMove = NO_MOVE;fprintf(stdout,"Could Not Find First Ply Hash Entry!\n");}
if (BestMove == NO_MOVE) {fprintf(stderr,"No Best Move! Assigning previous\n");BestMove = Previous;} <---- Fix!
/* If we aborted the search before any score was returned, then reset to the
* previous ply's move score */
if (AbortFlag && BestMove == NO_MOVE) score = PreviousScore;
/* Otherwise store what we've found */
else {
PreviousScore = score;
Previous = BestMove;
}
BestMoveRet = Previous;
/* Go to the next depth in our iterative deepening loop */
depth++;
//////////////////////////////////
regards,
Jim.