]> git.sesse.net Git - remoteglot/blobdiff - Position.pm
Some minor style12 parsing fixups.
[remoteglot] / Position.pm
index 7bdb913fa5716aedc9cd81fab34b0a1789250b30..e2c9801d7c5957abbaf5eca6eb4437424c6e9887 100644 (file)
@@ -15,7 +15,6 @@ sub new {
        my $pos = {};
        my (@x) = split / /, $str;
 
-       # TODO: Not all of this stuff really belongs in this module.
        $pos->{'board'} = Board->new(@x[1..8]);
        $pos->{'toplay'} = $x[9];
        $pos->{'ep_file_num'} = $x[10];
@@ -23,17 +22,12 @@ sub new {
        $pos->{'white_castle_q'} = $x[12];
        $pos->{'black_castle_k'} = $x[13];
        $pos->{'black_castle_q'} = $x[14];
-       $pos->{'time_to_100move_rule'} = $x[15];
+       $pos->{'time_since_100move_rule_reset'} = $x[15];
        $pos->{'player_w'} = $x[17];
        $pos->{'player_b'} = $x[18];
-       $pos->{'player_w'} =~ s/^[IG]M//;
-       $pos->{'player_b'} =~ s/^[IG]M//;
+       $pos->{'player_w'} =~ s/^W?[FCIG]M//;
+       $pos->{'player_b'} =~ s/^W?[FCIG]M//;
        $pos->{'move_num'} = $x[26];
-       if ($x[27] =~ /([a-h][1-8])-([a-h][1-8])/) {
-               $pos->{'last_move_uci'} = $1 . $2;
-       } else {
-               $pos->{'last_move_uci'} = undef;
-       }
        $pos->{'last_move'} = $x[29];
 
        bless $pos, $class;
@@ -81,11 +75,11 @@ sub fen {
                # "right" thing as per the standard, though.
                #
                if ($pos->{'toplay'} eq 'B') {
-                       $ep = $nep if ($col > 0 && substr($pos->{'board'}[4], $col-1, 1) eq 'p');
-                       $ep = $nep if ($col < 7 && substr($pos->{'board'}[4], $col+1, 1) eq 'p');
+                       $ep = $nep if ($col > 0 && $pos->{'board'}[4][$col-1] eq 'p');
+                       $ep = $nep if ($col < 7 && $pos->{'board'}[4][$col+1] eq 'p');
                } else {
-                       $ep = $nep if ($col > 0 && substr($pos->{'board'}[3], $col-1, 1) eq 'P');
-                       $ep = $nep if ($col < 7 && substr($pos->{'board'}[3], $col+1, 1) eq 'P');
+                       $ep = $nep if ($col > 0 && $pos->{'board'}[3][$col-1] eq 'P');
+                       $ep = $nep if ($col < 7 && $pos->{'board'}[3][$col+1] eq 'P');
                }
        }
        $fen .= " ";
@@ -93,7 +87,7 @@ sub fen {
 
        # half-move clock
        $fen .= " ";
-       $fen .= $pos->{'time_to_100move_rule'};
+       $fen .= $pos->{'time_since_100move_rule_reset'};
 
        # full-move clock
        $fen .= " ";