Introduce and use SearchLimits

Pack a bit of global variables related to search limits in
a single struct.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2011-04-22 15:52:03 +02:00
parent bbfe452f85
commit 1d368bbbdc
6 changed files with 112 additions and 119 deletions

View File

@@ -203,50 +203,48 @@ namespace {
bool go(Position& pos, UCIParser& up) {
string token;
Move searchMoves[MOVES_MAX];
int movesToGo, depth, nodes, moveTime, numOfMoves;
bool infinite, ponder;
int time[2] = {0, 0}, inc[2] = {0, 0};
searchMoves[0] = MOVE_NONE;
infinite = ponder = false;
movesToGo = depth = nodes = moveTime = numOfMoves = 0;
int time[] = { 0, 0 }, inc[] = { 0, 0 };
SearchLimits limits(0, 0, 0, 0, 0, 0, false, false);
Move searchMoves[MOVES_MAX] = { MOVE_NONE };
Move* cur = searchMoves;
while (up >> token)
{
if (token == "infinite")
infinite = true;
limits.infinite = true;
else if (token == "ponder")
ponder = true;
limits.ponder = true;
else if (token == "wtime")
up >> time[0];
up >> time[WHITE];
else if (token == "btime")
up >> time[1];
up >> time[BLACK];
else if (token == "winc")
up >> inc[0];
up >> inc[WHITE];
else if (token == "binc")
up >> inc[1];
up >> inc[BLACK];
else if (token == "movestogo")
up >> movesToGo;
up >> limits.movesToGo;
else if (token == "depth")
up >> depth;
up >> limits.maxDepth;
else if (token == "nodes")
up >> nodes;
up >> limits.maxNodes;
else if (token == "movetime")
up >> moveTime;
up >> limits.maxTime;
else if (token == "searchmoves")
{
while (up >> token)
searchMoves[numOfMoves++] = move_from_uci(pos, token);
*cur++ = move_from_uci(pos, token);
searchMoves[numOfMoves] = MOVE_NONE;
*cur = MOVE_NONE;
}
}
assert(pos.is_ok());
return think(pos, infinite, ponder, time, inc, movesToGo,
depth, nodes, moveTime, searchMoves);
limits.time = time[pos.side_to_move()];
limits.increment = inc[pos.side_to_move()];
return think(pos, limits, searchMoves);
}
void perft(Position& pos, UCIParser& up) {