mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +08:00
Store moves sent with "position" UCI command
Store all the game moves until current position. This will be used by next patch. No functional change.
This commit is contained in:
@@ -42,6 +42,7 @@ namespace {
|
||||
// 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);
|
||||
@@ -148,10 +149,13 @@ namespace {
|
||||
|
||||
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());
|
||||
}
|
||||
@@ -211,6 +215,6 @@ namespace {
|
||||
else if (token == "ponder") limits.ponder = true;
|
||||
}
|
||||
|
||||
Threads.start_thinking(pos, limits, searchMoves, SetupStates);
|
||||
Threads.start_thinking(pos, limits, searchMoves, SetupStates, SetupMoves);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user