#!/usr/bin/perl

use strict;

# connect to database
use DBI;
use vars qw/$dbh/;
do "./jq_globals.pl";

connect_to_db();

# get all of the team names into an ordered array
my $query = "select team from teams order by team_id";

my $ref = multi_row_query($query);
my @teams;
$teams[0] = "TEAMS ARRAY";

for (@$ref) {
	push @teams, $_->{'team'};
}

my %losers;

for my $game (1..63) {
	my ($sub, $mult);
	if ($game <= 32) {
		$sub = 1; $mult = 2; 
	} elsif ($game <= 48) {
		$sub = 33; $mult = 4;
	} elsif ($game <= 56) {
		$sub = 49; $mult = 8;
	} elsif ($game <= 60) {
		$sub = 57; $mult = 16;
	} elsif ($game <= 62) {
		$sub = 61; $mult = 32;
	} else {
		$sub = 63; $mult = 64;
	}
	my $game_name = "game_" . $game;
	my $start = ($game - $sub)*$mult + 1;
	my $end = $start + ($mult - 1);
	my $rand = random();
	my ($team1, $team2) = whos_playing($start, $end);
	my $which = pick_it($rand, $team1, $team2);
	print "$game_name|$teams[$which]\n";
}

sub whos_playing {

	my $start = shift;
	my $end = shift;
	my @return;
	for ($start..$end) {
		push @return, $_ unless $losers{$_};
	}
	return @return;
}

sub random {
	my $rand = int(rand(2));
	return $rand;
}

sub pick_it {
	my ($rand, $team1, $team2) = @_;
	if ($rand == 0) {
		$losers{$team2}++;
		return $team1 if $rand == 0;
	} elsif ($rand == 1) {
		$losers{$team1}++;
		return $team2 if $rand == 1;
	}
}