#!/usr/bin/perl

use strict;
use warnings;

sub Main ();

Main;

sub sort_low_loss { $a->[1] <=> $b->[1] };
sub sort_high_loss { $b->[1] <=> $a->[1] };
sub sort_low_win { $a->[0] <=> $b->[0] };
sub sort_high_win { $b->[0] <=> $a->[0] };

sub Main () {
  @::ARGV = ('a.t') unless @::ARGV;
  my $div = uc $::ARGV[0]; $div =~ s/\.T$//;
  my $munger = 
    -x "munge-scores" ? "munge-scores" : 
    -x "bin/munge-scores" ? "bin/munge-scores" : 
    -x "../bin/munge-scores" ? "../bin/munge-scores" : die "Can't find munge-scores.";
  open(IN, "$munger @::ARGV|") or die;
  my @data;
  while (<IN>) {
    chomp;
    my ($ws, $ls, $round0, $wp, $lp) = split(/\t/);
    next if $ws == $ls;
    push(@data, [$ws, $ls, $wp, $lp, $round0+1]);
    }
  my $sortsub = $0 =~ /high/i 
    ? $0 =~ /win/i ? \&sort_high_win : \&sort_high_loss
    : $0 =~ /win/i ? \&sort_low_win : \&sort_low_loss;
  my $count = 0;
  my $type = $0; $type =~ s/.*\///;
  open (PIPE, "|tee $div-$type.txt") && select PIPE;
  print "Rd Result\n";
  for my $gamep (sort $sortsub @data) {
    last if ++$count > 20;
    printf "%2d %3d %s\n       %3d %s\n", @{$gamep}[4,0,2,1,3];
    }
  close PIPE;
  }

