Created
March 16, 2015 14:35
-
-
Save freshlogic/8de3afd667fc7c306e77 to your computer and use it in GitHub Desktop.
Coders Bracket 2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function(game, team1, team2) { | |
var percentages = { | |
round5: { 1: 100, 2: 94, 3: 85, 4: 78, 5: 68, 6: 66, 7: 60, 8: 48, 9: 52, 10: 40, 11: 34, 12: 35, 13: 22, 14: 15, 15: 6, 16: 0 }, | |
round4: { 1: 87, 2: 69, 3: 61, 4: 56, 5: 52, 6: 51, 7: 27, 8: 18, 9: 8, 10: 46, 11: 38, 12: 49, 13: 24, 14: 12, 15: 14, 16: 0 }, | |
round3: { 1: 79, 2: 72, 3: 50, 4: 35, 5: 21, 6: 33, 7: 37, 8: 70, 9: 40, 10: 33, 11: 33, 12: 5, 13: 0, 14: 0, 15: 0, 16: 0 }, | |
round2: { 1: 59, 2: 46, 3: 47, 4: 72, 5: 75, 6: 23, 7: 0, 8: 57, 9: 50, 10: 0, 11: 60, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0 }, | |
round1: { 1: 57, 2: 48, 3: 64, 4: 23, 5: 50, 6: 67, 7: 0, 8: 50, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0 }, | |
round0: { 1: 67, 2: 33, 3: 44, 4: 33, 5: 0, 6: 50, 7: 0, 8: 50, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0 } | |
}; | |
var lowerSeededTeam = team1; | |
var higherSeededTeam = team2; | |
if (team1.seed === team2.seed) { | |
// If the seeds of two teams are the same, use the team's rank | |
if (team2.official_rank < team1.official_rank) { | |
lowerSeededTeam = team2; | |
higherSeededTeam = team1; | |
} | |
} else if (team2.seed < team1.seed) { | |
lowerSeededTeam = team2; | |
higherSeededTeam = team1; | |
} | |
// Get the winning percentage for the lower seeded team based on round | |
var percentage = percentages['round' + game.round][lowerSeededTeam.seed]; | |
// Add the delta of the teams rpi * winning percentage | |
percentage += (lowerSeededTeam.rpi * lowerSeededTeam.win_pct - higherSeededTeam.rpi * higherSeededTeam.win_pct) * 100; | |
// Generate a random number between 0 and 100 | |
var random = Math.round(Math.random() * 100); | |
if (random <= percentage) { | |
// Lower seeded team wins game | |
lowerSeededTeam.winsGame(); | |
} else { | |
// Upset: higher seeded team wins game | |
higherSeededTeam.winsGame(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment