Code: Select all
int WINDOW_MARGIN = 2000;
int factor = 1;
int lb = guess.Value - factor * WINDOW_MARGIN;
int ub = guess.Value + factor * WINDOW_MARGIN;
while (true)
{
int value = Search(initValue, depth, 0, lb, ub);
if (!Position.Expired && (value <= lb || value >= ub))
{
factor = factor * 4;
if (value <= lb)
{
lb = guess.Value - factor * WINDOW_MARGIN;
}
else
{
ub = guess.Value + factor * WINDOW_MARGIN;
}
}
else break;
}