Include the PV move in the low-depth analysis.
authorSteinar H. Gunderson <steinar+remoteglot@gunderson.no>
Sun, 18 Jul 2021 14:10:20 +0000 (16:10 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 18 Jul 2021 14:10:20 +0000 (16:10 +0200)
remoteglot.pl

index fb663f8b2ac5c5b06f199c42158c7c15433f53dd..abbbd983a7127abf317ef1c61916d2038db70c76 100755 (executable)
@@ -544,7 +544,13 @@ sub parse_infos {
                my $cp = $info->{'score_cp1'} // $info->{'score_cp'};
                my $mate = $info->{'score_mate1'} // $info->{'score_mate'};
                my $splicepos = $info->{'splicepos1'} // $info->{'splicepos'};
-               push @{$info->{'lowdepth'}}, [ $d, $cp, $mate, $splicepos ];
+               my $bestmove;
+               if (defined($info->{'pv1'})) {  # Avoid autovivification.
+                       $bestmove = $info->{'pv1'}[0];
+               } else {
+                       $bestmove = $info->{'pv'}[0];
+               }
+               push @{$info->{'lowdepth'}}, [ $d, $cp, $mate, $splicepos, $bestmove ];
        }
 }
 
@@ -959,7 +965,9 @@ sub output_json {
        $json->{'lowdepth'} = {};
        if (exists($info->{'lowdepth'})) {
                for my $ld (@{$info->{'lowdepth'}}) {
-                       $json->{'lowdepth'}{$ld->[0]} = score_digest_inner($ld->[1], $ld->[2], $ld->[3], 0, $pos_calculating);
+                       my $score = score_digest_inner($ld->[1], $ld->[2], $ld->[3], 0, $pos_calculating);
+                       push @$score, prettyprint_pv($pos_calculating, $ld->[4]);
+                       $json->{'lowdepth'}{$ld->[0]} = $score;
                }
        }