mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Send PV line to GUI only after resolving a fail high
This is how Shredder, Rybka and others do and avoids user is confused by a fail high (sent to GUI) followed by a fail low (not sent). No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
f427acbd27
commit
4270aec558
1 changed files with 7 additions and 7 deletions
|
@ -633,7 +633,7 @@ namespace {
|
||||||
while (++depth <= PLY_MAX && (!MaxDepth || depth <= MaxDepth) && !StopRequest)
|
while (++depth <= PLY_MAX && (!MaxDepth || depth <= MaxDepth) && !StopRequest)
|
||||||
{
|
{
|
||||||
Rml.bestMoveChanges = 0;
|
Rml.bestMoveChanges = 0;
|
||||||
cout << "info depth " << depth << endl;
|
cout << set960(pos.is_chess960()) << "info depth " << depth << endl;
|
||||||
|
|
||||||
// Calculate dynamic aspiration window based on previous iterations
|
// Calculate dynamic aspiration window based on previous iterations
|
||||||
if (MultiPV == 1 && depth >= 5 && abs(bestValues[depth - 1]) < VALUE_KNOWN_WIN)
|
if (MultiPV == 1 && depth >= 5 && abs(bestValues[depth - 1]) < VALUE_KNOWN_WIN)
|
||||||
|
@ -654,14 +654,10 @@ namespace {
|
||||||
// Search starting from ss+1 to allow calling update_gains()
|
// Search starting from ss+1 to allow calling update_gains()
|
||||||
value = search<PV, false, true>(pos, ss+1, alpha, beta, depth * ONE_PLY, 0);
|
value = search<PV, false, true>(pos, ss+1, alpha, beta, depth * ONE_PLY, 0);
|
||||||
|
|
||||||
// Send PV line to GUI and write to transposition table in case the
|
// Write PV back to transposition table in case the relevant entries
|
||||||
// relevant entries have been overwritten during the search.
|
// have been overwritten during the search.
|
||||||
for (int i = 0; i < Min(MultiPV, (int)Rml.size()); i++)
|
for (int i = 0; i < Min(MultiPV, (int)Rml.size()); i++)
|
||||||
{
|
|
||||||
Rml[i].insert_pv_in_tt(pos);
|
Rml[i].insert_pv_in_tt(pos);
|
||||||
cout << set960(pos.is_chess960())
|
|
||||||
<< Rml[i].pv_info_to_uci(pos, depth, alpha, beta, i) << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Value cannot be trusted. Break out immediately!
|
// Value cannot be trusted. Break out immediately!
|
||||||
if (StopRequest)
|
if (StopRequest)
|
||||||
|
@ -694,6 +690,10 @@ namespace {
|
||||||
bestValues[depth] = value;
|
bestValues[depth] = value;
|
||||||
bestMoveChanges[depth] = Rml.bestMoveChanges;
|
bestMoveChanges[depth] = Rml.bestMoveChanges;
|
||||||
|
|
||||||
|
// Send PV line to GUI and to log file
|
||||||
|
for (int i = 0; i < Min(MultiPV, (int)Rml.size()); i++)
|
||||||
|
cout << Rml[i].pv_info_to_uci(pos, depth, alpha, beta, i) << endl;
|
||||||
|
|
||||||
if (UseLogFile)
|
if (UseLogFile)
|
||||||
LogFile << pretty_pv(pos, depth, value, current_search_time(), Rml[0].pv) << endl;
|
LogFile << pretty_pv(pos, depth, value, current_search_time(), Rml[0].pv) << endl;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue