X-Git-Url: https://git.sesse.net/?p=remoteglot;a=blobdiff_plain;f=Position.pm;h=6976c96b68958880b0c58932a58cae0bedd92a14;hp=c3dbccaedde8b026a9585410c64134798e650d04;hb=01a8eaa3db2c015b25c0cf53df96b12493f3db58;hpb=92c3ae694d679a17fe546179c06b54ac8578eb9a diff --git a/Position.pm b/Position.pm index c3dbcca..6976c96 100644 --- a/Position.pm +++ b/Position.pm @@ -132,35 +132,6 @@ sub fen { return $fen; } -# Returns a compact bit string describing the same data as fen(), -# except for the half-move and full-move clock. -sub bitpacked_fen { - my $pos = shift; - my $board = $pos->{'board'}->bitpacked_fen(); - - my $bits = ""; - if ($pos->{'toplay'} eq 'W') { - $bits .= "0"; - } else { - $bits .= "1"; - } - - $bits .= $pos->{'white_castle_k'}; - $bits .= $pos->{'white_castle_q'}; - $bits .= $pos->{'black_castle_k'}; - $bits .= $pos->{'black_castle_q'}; - - my $col = $pos->{'ep_file_num'}; - if ($col == -1) { - $bits .= "0"; - } else { - $bits .= "1"; - $bits .= (qw(000 001 010 011 100 101 110 111))[$col]; - } - - return $board . pack('b*', $bits); -} - sub to_json_hash { my $pos = shift; my $json = { %$pos, fen => $pos->fen() }; @@ -247,6 +218,9 @@ sub make_move { } $np->{'player_w'} = $pos->{'player_w'}; $np->{'player_b'} = $pos->{'player_b'}; + if (exists($pos->{'start_fen'})) { + $np->{'start_fen'} = $pos->{'start_fen'}; + } if (defined($pretty_move)) { $np->{'last_move'} = $pretty_move; } else {