1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Fix book move with searchmoves compatibility

Do not return the book move if is not among the
RootMoves,in particular if we have been asked to
search on a move subset with "searchmoves" then
return book move only if it is among this subset.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2011-12-15 07:25:45 +01:00
parent af4fadebda
commit 1ae6ae9b60

View file

@ -328,13 +328,12 @@ void Search::think() {
book.open(Options["Book File"].value<string>());
Move bookMove = book.probe(pos, Options["Best Book Move"].value<bool>());
if (bookMove != MOVE_NONE)
{
if (!Signals.stop && (Limits.ponder || Limits.infinite))
Threads.wait_for_stop_or_ponderhit();
cout << "bestmove " << bookMove << endl;
return;
if ( bookMove != MOVE_NONE
&& std::count(RootMoves.begin(), RootMoves.end(), bookMove))
{
std::swap(RootMoves[0], *std::find(RootMoves.begin(), RootMoves.end(), bookMove));
goto finish;
}
}
@ -404,6 +403,8 @@ void Search::think() {
pos.undo_move(RootMoves[0].pv[0]);
}
finish:
// When we reach max depth we arrive here even without a StopRequest, but if
// we are pondering or in infinite search, we shouldn't print the best move
// before we are told to do so.