]> git.sesse.net Git - remoteglot-book/blob - opening-stats.pl
Small cleanup.
[remoteglot-book] / opening-stats.pl
1 #! /usr/bin/perl
2 use strict;
3 use warnings;
4 use CGI;
5 use JSON::XS;
6 use lib '..';
7 use Position;
8 use IPC::Open2;
9
10 my $cgi = CGI->new;
11 my $fen = $ARGV[0];
12 my ($chld_out, $chld_in);
13 my $pid = IPC::Open2::open2($chld_out, $chld_in, "./binlookup", "./open.mtbl", "40");
14
15 # Root position.
16 my $pos = Position->from_fen($fen);
17 my $hex = unpack('H*', $pos->bitpacked_fen);
18 print $chld_in $hex, "\n";
19 my $line = <$chld_out>;
20
21 print $line;
22 chomp $line;
23
24 my ($white, $draw, $black, $opening_num, $white_avg_elo, $black_avg_elo, $num_elo, $timestamp, $pgn_file_number, $pgn_start_position, @moves) = split / /, $line;
25
26 # Explore one move out.
27 for my $move (@moves) {
28         my ($np, $uci_move) = $pos->make_pretty_move($move);
29         my $hex = unpack('H*', $np->bitpacked_fen);
30         print $chld_in $hex, "\n";
31         my $line = <$chld_out>;
32         print "$move $line";
33 }