#include "position.h"
#include "search.h"
#include "thread.h"
-#include "tt.h"
#include "ucioption.h"
using namespace std;
// Keep track of position keys along the setup moves (from start position to the
// position just before to start searching). Needed by repetition draw detection.
Search::StateStackPtr SetupStates;
- Search::MovesVectPtr SetupMoves;
void set_option(istringstream& up);
void set_position(Position& pos, istringstream& up);
<< "\n" << Options
<< "\nuciok" << sync_endl;
- else if (token == "ucinewgame") TT.clear();
+ else if (token == "ucinewgame") { /* Avoid returning "Unknown command" */ }
else if (token == "go") go(pos, is);
else if (token == "position") set_position(pos, is);
else if (token == "setoption") set_option(is);
pos.set(fen, Options["UCI_Chess960"], Threads.main_thread());
SetupStates = Search::StateStackPtr(new std::stack<StateInfo>());
- SetupMoves = Search::MovesVectPtr(new std::vector<Move>());
- SetupMoves->reserve(200); // Try to avoid reallocations
// Parse move list (if any)
while (is >> token && (m = move_from_uci(pos, token)) != MOVE_NONE)
{
- SetupMoves->push_back(m);
SetupStates->push(StateInfo());
pos.do_move(m, SetupStates->top());
}
else if (token == "ponder") limits.ponder = true;
}
- Threads.start_thinking(pos, limits, searchMoves, SetupStates, SetupMoves);
+ Threads.start_thinking(pos, limits, searchMoves, SetupStates);
}
}