We are working with a standard set of matchups based on 8 preliminary games and 16 seeds (one side of a 32 team bracket, if you follow), and editing based on byes and preliminary round..
P arrays are preliminary games, G1 - G4 are quarterfinals, G5 and G6 are semifinals, # sign indicates seed. $Bye array simply traps byes for later use.
The code requires input of total preliminary matchups ($prelims)
and if zero prelims with less than 8 teams playing pass ($teamcount)
Yes it could be tighter, but under a deadline this is the best I could come up with -- have at it and make it better!
Code: Select all
// possible prelim matches
$P1 = array("#9", "#8");
$P2 = array("#10", "#7");
$P3 = array("#11", "#6");
$P4 = array("#12", "#5");
$P5 = array("#13", "#4");
$P6 = array("#14", "#3");
$P7 = array("#15", "#2");
$P8 = array("#16", "#1");
// standard remaining games, changes as prelim count changes
$G1 = array("P1 winner", "P8 winner");
$G2 = array("P4 winner", "P5 winner");
$G3 = array("P3 winner", "P6 winner");
$G4 = array("P2 winner", "P7 winner");
$G5 = array("G2 winner", "G1 winner");
$G6 = array("G3 winner", "G4 winner");
$G7 = array("G5 winner", "G6 winner");
// drop prelims as necessary, edit matchups with byes
switch ($prelims){
case 7:
unset($P8);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
break;
case 6:
unset($P8);
unset($P7);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
break;
case 5:
unset($P8);
unset($P7);
unset($P6);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
break;
case 4:
unset($P8);
unset($P7);
unset($P6);
unset($P5);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G2[1] = "#4"; // seed#4 bye
$bye[] = "#4";
break;
case 3:
unset($P8);
unset($P7);
unset($P6);
unset($P5);
unset($P4);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G2[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G2[0] = "#5"; // seed#5 bye
$bye[] = "#5";
break;
case 2:
unset($P8);
unset($P7);
unset($P6);
unset($P5);
unset($P4);
unset($P3);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G2[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G2[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G3[0] = "#6"; // seed#6 bye
$bye[] = "#6";
break;
case 1:
unset($P8);
unset($P7);
unset($P6);
unset($P5);
unset($P4);
unset($P3);
unset($P2);
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G2[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G2[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G3[0] = "#6"; // seed#6 bye
$bye[] = "#6";
$G4[0] = "#7"; // seed#7 bye
$bye[] = "#7";
break;
case 0:
unset($P8);
unset($P7);
unset($P6);
unset($P5);
unset($P4);
unset($P3);
unset($P2);
unset($P1);
// these are the exceptions when less than 8 play
if($teamcount == "8"){
$G1[1] = "#1"; // seed#1 bye
$bye[] = "#1";
$G4[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G2[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G2[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G3[0] = "#6"; // seed#6 bye
$bye[] = "#6";
$G4[0] = "#7"; // seed#7 bye
$bye[] = "#7";
$G1[0] = "#8"; // seed#8 bye
$bye[] = "#8";
}
elseif($teamcount == "7"){
$G4 = array("G1 winner", "#1"); // seed#1 bye
$bye[] = "#1";
$G3[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G2[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G1[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G1[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G2[0] = "#6"; // seed#6 bye
$bye[] = "#6";
$G3[0] = "#7"; // seed#7 bye
$bye[] = "#7";
$G5 = array("G2 winner", "G3 winner");
$G6 = array("G4 winner", "G5 winner");
unset($G7);
}
elseif($teamcount == "6"){
$G3 = array("G1 winner", "#1"); // seed#1 bye
$bye[] = "#1";
$G4 = array("G2 winner", "#2"); // seed#2 bye
$bye[] = "#2";
$G2[1] = "#3"; // seed#3 bye
$bye[] = "#3";
$G1[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G1[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G2[0] = "#6"; // seed#6 bye
$bye[] = "#6";
$G5 = array("G3 winner", "G4 winner");
unset($G6);
unset($G7);
}
elseif($teamcount == "5"){
$G2 = array("G1 winner", "#1"); // seed#1 bye
$bye[] = "#1";
$G3[1] = "#2"; // seed#2 bye
$bye[] = "#2";
$G3[0] = "#3"; // seed#3 bye
$bye[] = "#3";
$G1[1] = "#4"; // seed#4 bye
$bye[] = "#4";
$G1[0] = "#5"; // seed#5 bye
$bye[] = "#5";
$G4 = array("G2 winner", "G3 winner");
unset($G5);
unset($G6);
unset($G7);
}
break;
}