Skip to content

Instantly share code, notes, and snippets.

@dlh
Created December 12, 2014 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dlh/59e57aee9ead1fda9359 to your computer and use it in GitHub Desktop.
Save dlh/59e57aee9ead1fda9359 to your computer and use it in GitHub Desktop.
Ladle sweeps
# 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))
print
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])
== 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