]> git.sesse.net Git - remoteglot-book/blobdiff - www/opening-stats.pl
Fix an issue with NaN causing invalid JSON.
[remoteglot-book] / www / opening-stats.pl
index a17a82f067978cde4b46b033e3dbaaaa23d79d03..edbff24e3303cb103ae85b2201576cede343f70c 100755 (executable)
@@ -23,6 +23,16 @@ print $chld_in $hex, "\n";
 chomp (my $line = <$chld_out>);
 
 my ($white, $draw, $black, $opening_num, $white_avg_elo, $black_avg_elo, $num_elo, $timestamp, $pgn_file_number, $pgn_start_position, @moves) = split / /, $line;
+my @json_moves = ();
+push @json_moves, {
+       white => $white * 1,
+       draw => $draw * 1,
+       black => $black * 1,
+       white_avg_elo => $num_elo == 0 ? undef : $white_avg_elo * 1,
+       black_avg_elo => $num_elo == 0 ? undef : $black_avg_elo * 1,
+       num_elo => $num_elo * 1
+};
+
 my $opening = $openings{$opening_num} // 'A00: Start position';
 
 my $root_game;
@@ -47,7 +57,6 @@ eval {
 };
 
 # Explore one move out.
-my @json_moves = ();
 for my $move (@moves) {
        my ($np, $uci_move) = $pos->make_pretty_move($move);
        my $hex = unpack('H*', $np->bitpacked_fen);
@@ -59,8 +68,8 @@ for my $move (@moves) {
                white => $white * 1,
                draw => $draw * 1,
                black => $black * 1,
-               white_avg_elo => $white_avg_elo * 1,
-               black_avg_elo => $black_avg_elo * 1,
+               white_avg_elo => $num_elo == 0 ? undef : $white_avg_elo * 1,
+               black_avg_elo => $num_elo == 0 ? undef : $black_avg_elo * 1,
                num_elo => $num_elo * 1
        };
 }