my $pretty;
my $piece = substr($board->[$from_row], $from_col, 1);
+ if ($piece eq '-') {
+ die "Invalid move";
+ }
+
# white short castling
if ($pv eq 'e1g1' && $piece eq 'K') {
my @nb = @$board;
sub output_screen {
#return;
+ #
+ # Check the PVs first. if they're invalid, just wait, as our data
+ # is most likely out of sync. This isn't a very good solution, as
+ # it can frequently miss stuff, but it's good enough for most users.
+ #
+ eval {
+ my $dummy;
+ if (exists($uciinfo{'pv'})) {
+ $dummy = prettyprint_pv($ficsinfo{'board'}, @{$uciinfo{'pv'}});
+ }
+
+ my $mpv = 1;
+ while (exists($uciinfo{'pv' . $mpv})) {
+ $dummy = prettyprint_pv($ficsinfo{'board'}, @{$uciinfo{'pv' . $mpv}});
+ ++$mpv;
+ }
+ };
+ if ($@) {
+ return;
+ }
+
print "\ecAnalysis:\n";
return unless (exists($ficsinfo{'board'}));