var seeds = [
1,2,3,4,5,6,7,8
],
num_rounds = Math.log(seeds.length)/Math.log(2);
// 2-dimensional array
// Each subarray holds the seeds active in that round in order of matches played
// Example:
// seeds in first match of 2nd round are: seed_round[1][0] & seed_round[1][1]
var seed_rounds = [];
// Create empty arrays inside seed_round
for(var i = 0; i < num_rounds; i++) {
seed_rounds[i] = [];
}
// Assuming no upsets
// Final is seed 1 and seed 2
seed_rounds[num_rounds] = [ seeds[0], seeds[1] ];
// For each round in the bracket
for(var r = num_rounds; r > 0; r--) {
var round = seed_rounds[r];
var feed_round = seed_rounds[r - 1];
// For each seed in the round, work out who they defeated in previous round, storing result
for(var m = 0; m < round.length; m++) {
var num_teams_in_round = round.length * 2;
// Feeder match seed A = current match seed "m"
feed_round[m * 2] = round[m];
// Feeder match seed B = # teams in feeder round plus 1 minus current match seed "m"
feed_round[(m * 2) + 1] = num_teams_in_round + 1 - round[m];
}
}
var firstHalf = [];
var secondHalf = [];
for(var i = 0; i < (seeds.length / 2); i++) {
firstHalf[i] = seed_rounds[1][i];
}
for(var i = 0; i < num_rounds; i++) {
secondHalf[i] = seed_rounds[1].slice((seeds.length / 2), (seeds.length));
}
secondHalf[1].reverse();
var newSeeds = firstHalf.concat(secondHalf[1]);
var singleElim8Data = {
teams : [ // Matchups
[ newSeeds[0], newSeeds[1] ],
[ newSeeds[2], newSeeds[3] ],
[ newSeeds[4], newSeeds[5] ],
[ newSeeds[6], newSeeds[7] ]
],
results : [[
[ [1, 0], [1, 0], [0, 1], [0,1] ],
[ [1, 0], [0, 1] ],
[ [1, 0], [0, 1] ]
]]
}
$(function() {
$('#singleElim8').bracket({
init: singleElim8Data
})
})