-
-
Save dlh/59e57aee9ead1fda9359 to your computer and use it in GitHub Desktop.
Ladle sweeps
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
# encoding: utf-8 | |
# Usage: python find_ladle_sweeps.py <path/to/ladles.json> | |
# The Ladle JSON file is available at http://generalconsumption.org/armagetronad/ladle-export/ | |
import json | |
import sys | |
def extract_names(matchup): | |
return [xs[0] for xs in matchup] | |
def extract_scores(matchup): | |
return [xs[1] for xs in matchup] | |
def extract_opponent_name(team, matchup): | |
return [name for name in extract_names(matchup) if name != team][0] | |
def extract_score_for_name(team, matchup): | |
return [xs[1] for xs in matchup if xs[0] == team][0] | |
def winning_team(ladle): | |
championship_matchup = ladle["results"][-1][0] | |
return max(championship_matchup, key=lambda x: x[1])[0] | |
def print_schedule(team, schedule): | |
def describe_result(score, opponent): | |
if not score and opponent: | |
return u"bye versus {0} (no-shows)".format(opponent) | |
if not opponent: | |
return "bye" | |
return u"{0}-0 versus {1}".format(score, opponent) | |
winning_scores_and_opponents = [ | |
(extract_score_for_name(team, matchup), extract_opponent_name(team, matchup)) | |
for matchup in schedule | |
] | |
# Don't count byes or no-shows | |
actual_scores = [ | |
score | |
for (score, opponent) in winning_scores_and_opponents | |
if score | |
] | |
formatted_schedule = [ | |
describe_result(score, opponent) | |
for (score, opponent) in winning_scores_and_opponents | |
] | |
print u" • Won {0} matches against {1} teams".format(sum(actual_scores), len(actual_scores)) | |
print u" • {0}".format(", ".join(formatted_schedule)) | |
def check_sweep(ladle): | |
winner = winning_team(ladle) | |
winner_schedule = [ | |
matchup | |
for elimination_round in ladle["results"] | |
for matchup in elimination_round | |
if winner in extract_names(matchup) | |
] | |
is_sweep = all([ | |
not all(extract_scores(matchup)) | |
for matchup in winner_schedule | |
]) | |
if is_sweep: | |
print u"{0}: {1}".format(ladle["name"], winner) | |
print_schedule(winner, winner_schedule) | |
def main(ladles_json_path): | |
with open(ladles_json_path) as f: | |
all_ladles = json.load(f) | |
print "== Ladle sweeps\n" | |
for ladle in all_ladles: | |
check_sweep(ladle) | |
if __name__ == '__main__': | |
if len(sys.argv) != 2: | |
print "Usage: python {0} <path/to/ladles.json>".format(sys.argv[0]) | |
print "The Ladle JSON file is available at http://generalconsumption.org/armagetronad/ladle-export/" | |
sys.exit(1) | |
main(sys.argv[1]) |
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
== Ladle sweeps | |
Ladle 4: proN00bz | |
• Won 4 matches against 2 teams | |
• bye versus TiP (no-shows), 2-0 versus Steve Taylor, 2-0 versus Holers | |
Ladle 12: -¦x¦- | |
• Won 7 matches against 3 teams | |
• 2-0 versus ~*SpeederS*~, 2-0 versus Tronic Monkeys, 3-0 versus Tronners Under the Influence | |
Ladle 15: -¦x¦- | |
• Won 5 matches against 2 teams | |
• 2-0 versus Crazy Tronners, 3-0 versus DarkSyndicate | |
Ladle 18: Bebe's Boobs Destroy Society | |
• Won 9 matches against 4 teams | |
• 2-0 versus ~*The SpeediKs*~, 2-0 versus Arrow Clan, 2-0 versus Twisted Rats, 3-0 versus Crazy Tronners | |
Ladle 21: Arrow Clan | |
• Won 9 matches against 4 teams | |
• 2-0 versus PLZ RES US!, 2-0 versus DarkSyndicate, 2-0 versus Immortal Dynasty, 3-0 versus Plus | |
Ladle 29: Speeders 1 | |
• Won 8 matches against 4 teams | |
• 2-0 versus degree°, 2-0 versus Crazy Tronners, 2-0 versus Freelancers, 2-0 versus Plus | |
Ladle 33: Vowel Appreciation Team | |
• Won 6 matches against 3 teams | |
• bye, 2-0 versus NoNameNeeded, 2-0 versus Ironside, 2-0 versus TX | |
Ladle 34: Jalapeños on sticks! | |
• Won 8 matches against 4 teams | |
• 2-0 versus TX, 2-0 versus Rogue Tronners, 2-0 versus Crazy Tronners, 2-0 versus Team Unknown | |
Ladle 38: Rogue Tronners | |
• Won 8 matches against 4 teams | |
• 2-0 versus Immortal Dynasty, 2-0 versus Open Team, 2-0 versus Crazy Tronners Alpha, 2-0 versus Speeders is Dead | |
Ladle 44: Twi¦×¦ted ¦×¦ats | |
• Won 8 matches against 4 teams | |
• bye, 2-0 versus Speeders, 2-0 versus CTz, 2-0 versus Rogue Tronners, 2-0 versus Team.uNk | |
Ladle 49: \\MeetYourMaker | |
• Won 8 matches against 4 teams | |
• bye, 2-0 versus ≡¤≡Tronners, 2-0 versus Dark Syndicate, 2-0 versus Crazy Tronners, 2-0 versus ~*SP*~ | |
Ladle 51: \\MeetYourMaker | |
• Won 8 matches against 4 teams | |
• 2-0 versus DS OpenTeam, bye versus PRU (no-shows), 2-0 versus Twi¦×¦ted Ladle Team, 2-0 versus _~Rogue Tronners, 2-0 versus Speeders | |
Ladle 55: Revolver | |
• Won 8 matches against 4 teams | |
• 2-0 versus The United Noobs of Armagetron, 2-0 versus Swift >, 2-0 versus _~Rogue Tronners~_, 2-0 versus Cool Trainers | |
Ladle 56: Revolver | |
• Won 6 matches against 3 teams | |
• bye, 2-0 versus CTb, 2-0 versus Speeders, 2-0 versus CTa | |
Ladle 57: Team Baylife | |
• Won 10 matches against 5 teams | |
• 2-0 versus The Avengers, 2-0 versus Revolver, 2-0 versus Speedhax, 2-0 versus Rogue Tronners, 2-0 versus Speeders | |
Ladle 60: Rogue Tronners | |
• Won 6 matches against 3 teams | |
• bye, 2-0 versus Redemption, 2-0 versus Wild West, 2-0 versus Crazy Tronners | |
Ladle 65: Redemption/% | |
• Won 8 matches against 4 teams | |
• 2-0 versus Immortal Dynasty, 2-0 versus RoadRunnerZ, 2-0 versus Revolver, 2-0 versus Rogue Tronners | |
Ladle 70: Rogue Tronners | |
• Won 8 matches against 4 teams | |
• 2-0 versus Serenity, 2-0 versus <P)hoenix Flame, 2-0 versus That 70s team!, 2-0 versus Redemption/% | |
Ladle 74: Redemption | |
• Won 6 matches against 3 teams | |
• bye, 2-0 versus Brilliant Team, 2-0 versus <P)hoenix Fire, 2-0 versus Crazy Tronners Alpha | |
Ladle 78: Redemption/% | |
• Won 8 matches against 4 teams | |
• 2-0 versus Wild West, 2-0 versus TeamUnK, 2-0 versus Kill St., 2-0 versus Crazy Tronners Alpha | |
Ladle 81: Sickest Kents of Newcastle | |
• Won 8 matches against 4 teams | |
• 2-0 versus OOps, 2-0 versus Redemption/%, 2-0 versus Senile Humanoïds, 2-0 versus _~Rogue Tronners~_ | |
Ladle 85: _~Rogue Tronners~_ | |
• Won 6 matches against 3 teams | |
• bye, 2-0 versus Speeders, 2-0 versus Wild West, 2-0 versus Crazy Tronners | |
Ladle 88: Crazy Tronners | |
• Won 6 matches against 3 teams | |
• 2-0 versus Wild West, 2-0 versus _~Rogue Tronners~_, 2-0 versus eggs and ham |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment