X-Git-Url: https://git.sesse.net/?p=remoteglot;a=blobdiff_plain;f=Board.pm;h=720189899045eb72ea25850167e98613c2c374a5;hp=2950e359c57b4a8fa7ac8632a24a2a730417488a;hb=619f444e5eafb0f602d848ec13d70148cd90a16b;hpb=28a48a41e4722d937261926c0a07530a53fa4200 diff --git a/Board.pm b/Board.pm index 2950e35..7201898 100644 --- a/Board.pm +++ b/Board.pm @@ -200,15 +200,14 @@ sub parse_pretty_move { push @squares, [ $row, $col ]; } } - if (scalar @squares > 1) { - # Filter out pieces which cannot reach this square. - @squares = grep { $board->can_reach($piece, $_->[0], $_->[1], $to_row, $to_col) } @squares; - } - if (scalar @squares > 1) { - # See if doing this move would put us in check - # (yes, there are clients that expect us to do this). - @squares = grep { !$board->make_move($_->[0], $_->[1], $to_row, $to_col, $promo)->in_check($side) } @squares; - } + + # Filter out pieces which cannot reach this square. + @squares = grep { $board->can_reach($piece, $_->[0], $_->[1], $to_row, $to_col) } @squares; + + # See if doing this move would put us in check + # (yes, there are clients that expect us to do this). + @squares = grep { !$board->make_move($_->[0], $_->[1], $to_row, $to_col, $promo)->in_check($side) } @squares; + if (scalar @squares == 0) { die "Impossible move $move"; } @@ -541,12 +540,12 @@ sub _prettyprint_move_no_check_or_mate { $pretty = substr($move, 0, 1) . 'x' . _pos_to_square($to_row, $to_col); } else { $pretty = _pos_to_square($to_row, $to_col); + } - if (defined($promo) && $promo ne '') { - # promotion - $pretty .= "="; - $pretty .= uc($promo); - } + if (defined($promo) && $promo ne '') { + # promotion + $pretty .= "="; + $pretty .= uc($promo); } return $pretty; }