Revert the PV numbering.
authorSteinar H. Gunderson <sesse@debian.org>
Sun, 8 Jul 2007 11:12:40 +0000 (13:12 +0200)
committerSteinar H. Gunderson <sesse@debian.org>
Sun, 8 Jul 2007 11:12:40 +0000 (13:12 +0200)
remoteglot.pl

index 1b2e49a..8c87108 100755 (executable)
@@ -18,7 +18,7 @@ use warnings;
 
 # Configuration
 my $server = "freechess.org";
-my $target = "224";
+my $target = "22";
 # my $engine = "/usr/games/toga2";
 my $engine = "wine Rybkav2.3.2a.mp.w32.exe";
 my $telltarget = undef;   # undef to be silent
@@ -374,42 +374,17 @@ sub style12_to_fen {
        $fen .= $x[26];
 
        $pos{'fen'} = $fen;
-       $pos{'move_num'} = $x[26];
 
        return \%pos;
 }
 
-sub prefix_pv {
-       my ($move_num, $toplay) = @_;
-
-       if ($toplay eq 'B') {
-               return "$move_num. ..";
-       } else {
-               return "";
-       }
-}
-
 sub prettyprint_pv {
-       my ($board, $move_num, $toplay, @pvs) = @_;
-
-       if (!defined($board) || !defined($move_num) || !defined($toplay)) {
-               die "Missing data";
-       }
+       my ($board, @pvs) = @_;
+       
        if (scalar @pvs == 0 || !defined($pvs[0])) {
                return ();
        }
-
-       my ($prefix, $next_move, $next_toplay);
-       if ($toplay eq 'W') {
-               $prefix = "$move_num.";
-               $next_move = $move_num;
-               $next_toplay = 'B';
-       } else {
-               $prefix = "";
-               $next_move = $move_num + 1;
-               $next_toplay = 'W';
-       }
-
+       
        my @nb = @$board;
 
        my $pv = shift @pvs;
@@ -424,12 +399,6 @@ sub prettyprint_pv {
        if ($piece eq '-') {
                die "Invalid move";
        }
-       if ($piece eq uc($piece) && $toplay eq 'B') {
-               die "Black tried to move a white piece";
-       }
-       if ($piece eq lc($piece) && $toplay eq 'W') {
-               die "White tried to move a black piece";
-       }
 
        # white short castling
        if ($pv eq 'e1g1' && $piece eq 'K') {
@@ -441,7 +410,7 @@ sub prettyprint_pv {
                substr($nb[7], 7, 1, '-');
                substr($nb[7], 5, 1, 'R');
                                
-               return ($prefix . '0-0', prettyprint_pv(\@nb, $next_move, $next_toplay, @pvs));
+               return ('0-0', prettyprint_pv(\@nb, @pvs));
        }
 
        # white long castling
@@ -454,7 +423,7 @@ sub prettyprint_pv {
                substr($nb[7], 0, 1, '-');
                substr($nb[7], 3, 1, 'R');
                                
-               return ($prefix . '0-0-0', prettyprint_pv(\@nb, $next_move, $next_toplay, @pvs));
+               return ('0-0-0', prettyprint_pv(\@nb, @pvs));
        }
 
        # black short castling
@@ -467,7 +436,7 @@ sub prettyprint_pv {
                substr($nb[0], 7, 1, '-');
                substr($nb[0], 5, 1, 'r');
                                
-               return ($prefix . '0-0', prettyprint_pv(\@nb, $next_move, $next_toplay, @pvs));
+               return ('0-0', prettyprint_pv(\@nb, @pvs));
        }
 
        # black long castling
@@ -480,7 +449,7 @@ sub prettyprint_pv {
                substr($nb[0], 0, 1, '-');
                substr($nb[0], 3, 1, 'r');
                                
-               return ($prefix . '0-0-0', prettyprint_pv(\@nb, $next_move, $next_toplay, @pvs));
+               return ('0-0-0', prettyprint_pv(\@nb, @pvs));
        }
 
        # check if the from-piece is a pawn
@@ -567,7 +536,7 @@ sub prettyprint_pv {
                $pretty .= '+';
        }
 
-       return ($prefix . $pretty, prettyprint_pv(\@nb, $next_move, $next_toplay, @pvs));
+       return ($pretty, prettyprint_pv(\@nb, @pvs));
 }
 
 sub output_screen {
@@ -583,18 +552,12 @@ sub output_screen {
        eval {
                my $dummy;
                if (exists($uciinfo{'pv'})) {
-                       $dummy = prettyprint_pv($pos_calculating->{'board'},
-                               $pos_calculating->{'move_num'},
-                               $pos_calculating->{'toplay'},
-                               @{$uciinfo{'pv'}});
+                       $dummy = prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv'}});
                }
        
                my $mpv = 1;
                while (exists($uciinfo{'pv' . $mpv})) {
-                       $dummy = prettyprint_pv($pos_calculating->{'board'},
-                               $pos_calculating->{'move_num'},
-                               $pos_calculating->{'toplay'},
-                               @{$uciinfo{'pv' . $mpv}});
+                       $dummy = prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv' . $mpv}});
                        ++$mpv;
                }
        };
@@ -625,27 +588,6 @@ sub output_screen {
                        }
                }
        }
-                       
-       my @text_pvs = ();
-       if (exists($uciinfo{'pv1'}) && exists($uciinfo{'pv2'})) {
-               # multi-PV
-               my $mpv = 1;
-               while (exists($uciinfo{'pv' . $mpv})) {
-                       $text_pvs[$mpv] = prefix_pv($pos_calculating->{'move_num'}, $pos_calculating->{'toplay'}) .
-                               join(' ', prettyprint_pv($pos_calculating->{'board'},
-                                       $pos_calculating->{'move_num'},
-                                       $pos_calculating->{'toplay'},
-                                       @{$uciinfo{'pv' . $mpv}}));
-                       ++$mpv;
-               }
-       } else {
-               # single-PV
-               $text_pvs[0] = prefix_pv($pos_calculating->{'move_num'}, $pos_calculating->{'toplay'}) .
-                       join(' ', prettyprint_pv($pos_calculating->{'board'},
-                               $pos_calculating->{'move_num'},
-                               $pos_calculating->{'toplay'},
-                               @{$uciinfo{'pv'}}));
-       }
 
        if (exists($uciinfo{'pv1'}) && exists($uciinfo{'pv2'})) {
                # multi-PV
@@ -666,14 +608,16 @@ sub output_screen {
                        }
 
                        $text .= ":\n";
-                       $text .= "  $text_pvs[$mpv]\n\n";
+                       $text .= "  " . join(', ', prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv' . $mpv}})) . "\n";
+                       $text .= "\n";
                        ++$mpv;
                }
        } else {
                # single-PV
                my $score = long_score(\%uciinfo, $pos_calculating, '');
                $text .= "  $score\n" if defined($score);
-               $text .= "  PV: $text_pvs[0]\n";
+               $text .=  "  PV: " . join(', ', prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv'}}));
+               $text .=  "\n";
 
                if (exists($uciinfo{'nodes'}) && exists($uciinfo{'nps'}) && exists($uciinfo{'depth'})) {
                        $text .= sprintf "  %u nodes, %7u nodes/sec, depth %u ply",
@@ -717,14 +661,16 @@ sub output_screen {
                                $tell_text .= sprintf " (%2u ply)", $uciinfo{'depth' . $mpv};
                        }
 
-                       $tell_text .= ": $text_pvs[$mpv]\n";
+                       $tell_text .= ": ";
+                       $tell_text .= join(', ', prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv' . $mpv}}));
+                       $tell_text .= "\n";
                        ++$mpv;
                }
        } else {
                # single-PV
                my $score = long_score(\%uciinfo, $pos_calculating, '');
                $tell_text .= "  $score\n" if defined($score);
-               $tell_text .= "  PV: $text_pvs[0]";
+               $tell_text .= "  PV: " . join(', ', prettyprint_pv($pos_calculating->{'board'}, @{$uciinfo{'pv'}}));
                if (exists($uciinfo{'depth'})) {
                        $tell_text .= sprintf " (depth %u ply)", $uciinfo{'depth'};
                }