X-Git-Url: https://git.sesse.net/?p=remoteglot;a=blobdiff_plain;f=remoteglot.pl;h=7220412d14a03e022d7c50f9f8e6abf096a15e98;hp=c6815af33932e967e671ee140b139994ef2b8080;hb=eb7f2f8b0c238f9f8a57fe578506beb2001d4e15;hpb=b0c4ec18261ba40c2323c83f88e4e647d2039638 diff --git a/remoteglot.pl b/remoteglot.pl index c6815af..7220412 100755 --- a/remoteglot.pl +++ b/remoteglot.pl @@ -76,17 +76,11 @@ my $last_move; my $last_text = ''; my ($pos_calculating, $pos_calculating_second_engine); -uciprint($engine, "setoption name UCI_AnalyseMode value true"); -while (my ($key, $value) = each %remoteglotconf::engine_config) { - uciprint($engine, "setoption name $key value $value"); -} +setoptions($engine, \%remoteglotconf::engine_config); uciprint($engine, "ucinewgame"); if (defined($engine2)) { - uciprint($engine2, "setoption name UCI_AnalyseMode value true"); - while (my ($key, $value) = each %remoteglotconf::engine2_config) { - uciprint($engine2, "setoption name $key value $value"); - } + setoptions($engine2, \%remoteglotconf::engine2_config); uciprint($engine2, "setoption name MultiPV value 500"); uciprint($engine2, "ucinewgame"); } @@ -1473,3 +1467,16 @@ sub parse_uci_move { my $promo = substr($move, 4, 1); return ($from_row, $from_col, $to_row, $to_col, $promo); } + +sub setoptions { + my ($engine, $config) = @_; + uciprint($engine, "setoption name UCI_AnalyseMode value true"); + uciprint($engine, "setoption name Analysis Contempt value Off"); + if (exists($config->{'Threads'})) { # Threads first, because clearing hash can be multithreaded then. + uciprint($engine, "setoption name Threads value " . $config->{'Threads'}); + } + while (my ($key, $value) = each %$config) { + next if $key eq 'Threads'; + uciprint($engine, "setoption name $key value $value"); + } +}