use JSON::XS;
use lib '..';
use Position;
-use ECO;
-ECO::unpersist("../book/openings.txt");
+our %openings = ();
+read_openings();
my $cgi = CGI->new;
my $fen = $cgi->param('fen');
my $pos = Position->from_fen($fen);
my $hex = unpack('H*', $pos->bitpacked_fen);
-open my $fh, "-|", "../book/binlookup", "../book/open.mtbl", $hex
- or die "../book/binlookup: $!";
+open my $fh, "-|", "../binlookup", "../open.mtbl", $hex
+ or die "../binlookup: $!";
my $opening;
my @moves = ();
while (<$fh>) {
chomp;
- my ($move, $white, $draw, $black, $opening_num, $white_avg_elo, $black_avg_elo) = split;
+ my ($move, $white, $draw, $black, $opening_num, $white_avg_elo, $black_avg_elo, $num_elo) = split;
push @moves, {
move => $move,
white => $white * 1,
draw => $draw * 1,
black => $black * 1,
white_avg_elo => $white_avg_elo * 1,
- black_avg_elo => $black_avg_elo * 1
+ black_avg_elo => $black_avg_elo * 1,
+ num_elo => $num_elo * 1
};
- $opening = $ECO::openings[$opening_num];
+ $opening = $openings{$opening_num};
}
close $fh;
my $x = shift;
return $x->{'white'} + $x->{'draw'} + $x->{'black'};
}
+
+sub read_openings {
+ open my $fh, "../openings.txt"
+ or die "../openings.txt: $!";
+ for my $line (<$fh>) {
+ chomp $line;
+ my ($hash, $eco, $opening, $variation, $subvariation) = split /\t/, $line;
+ if ($variation eq '') {
+ $openings{$hash} = $eco . ": " . $opening;
+ } else {
+ $openings{$hash} = $eco . ": " . $opening . ": " . $variation;
+ }
+ }
+ close $fh;
+}