From f81eecb0383fd76f0735836744dd9be169e73268 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 26 Dec 2017 19:36:01 +0100 Subject: [PATCH] Revert "Reject more invalid moves." This reverts commit 72de1da79baf2dddf6b37374aeb27bd3576af596. I honestly don't remember why this revert is anymore. --- Board.pm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Board.pm b/Board.pm index 7201898..3e0fd33 100644 --- a/Board.pm +++ b/Board.pm @@ -200,14 +200,15 @@ sub parse_pretty_move { push @squares, [ $row, $col ]; } } - - # 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 > 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; + } if (scalar @squares == 0) { die "Impossible move $move"; } -- 2.39.2