]> git.sesse.net Git - remoteglot/blobdiff - Position.pm
Yet more Chess960 fixes.
[remoteglot] / Position.pm
index 93bde53d334670e64a114f9881545ae37be8f987..8cfc4a6e8c6caac1b3d02d33c25ce27cc07b75cd 100644 (file)
@@ -76,11 +76,11 @@ sub from_fen {
        }
        while ($castling =~ s/([A-H])//g) {
                my $rook_col = lc($1);
-               my $king_col = _find_piece_col($board->[7], 'K');
-               if ($rook_col < $king_col) {
-                       $pos->{'white_castle_q'} = _col_num_to_letter($rook_col);
+               my $king_col = _col_num_to_letter(_find_piece_col($board->[7], 'K'));
+               if ($rook_col lt $king_col) {
+                       $pos->{'white_castle_q'} = $rook_col;
                } else {
-                       $pos->{'white_castle_k'} = _col_num_to_letter($rook_col);
+                       $pos->{'white_castle_k'} = $rook_col;
                }
        }
        if ($castling =~ /k/) {
@@ -91,11 +91,11 @@ sub from_fen {
        }
        while ($castling =~ s/([a-h])//g) {
                my $rook_col = $1;
-               my $king_col = _find_piece_col($board->[0], 'k');
-               if ($rook_col < $king_col) {
-                       $pos->{'black_castle_q'} = _col_num_to_letter($rook_col);
+               my $king_col = _col_num_to_letter(_find_piece_col($board->[0], 'k'));
+               if ($rook_col lt $king_col) {
+                       $pos->{'black_castle_q'} = $rook_col;
                } else {
-                       $pos->{'black_castle_k'} = _col_num_to_letter($rook_col);
+                       $pos->{'black_castle_k'} = $rook_col;
                }
        }
        $pos->{'time_since_100move_rule_reset'} = $halfmove_clock // 0;