Skip to content

Instantly share code, notes, and snippets.

@jorve
Last active October 3, 2019 20:28
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 jorve/660045f5575f4d602cad2a80fd0f4866 to your computer and use it in GitHub Desktop.
Save jorve/660045f5575f4d602cad2a80fd0f4866 to your computer and use it in GitHub Desktop.
import requests
import json
import statistics
import math
# set up dictionary for stat collection
league_stats = {
'mmr_list': [],
'divisions': {
'EST-MON': {'mmr_list': []},
'EST-SUN': {'mmr_list': []},
'PST-SUN': {'mmr_list': []}
}
}
# define a function that creates badges based on the zscore of the player
def rd2lBadge(zscore):
badges = {
3: 'Immortal',
2: 'Divine',
1: 'Ancient',
0: 'Legend',
-1: 'Archon',
-2: 'Crusader',
-3: 'Guardian',
-4: 'Herald'
}
number = int((zscore - math.floor(zscore))//(1/7)) + 1
return str(badges[math.floor(zscore)] + " " + str(number))
# grab team list from rd2l.gg
teams_json = requests.get('https://rd2l.gg/teams/json')
# dump player and team lists into json
teams = teams_json.json()
season18 = teams["Season 18"]
# generate team mean, stdev, and generate list of league-wide and divisional mmr
for team in season18:
team["mmr_list"] = []
for player in team["player"]:
team["mmr_list"].append(player["adjusted_mmr"])
league_stats["mmr_list"].append(player["adjusted_mmr"])
league_stats["divisions"][team["division_name"]]["mmr_list"].append(player["adjusted_mmr"])
team["mean"] = statistics.mean(team["mmr_list"])
team["stdev"] = statistics.stdev(team["mmr_list"])
# calculate league-wide mean and standard deviation
league_stats["mean"] = statistics.mean(league_stats["mmr_list"])
league_stats["stdev"] = statistics.stdev(league_stats["mmr_list"])
# calculate division mean and standard deviation
for division in league_stats["divisions"].keys():
league_stats["divisions"][division]["mean"] = statistics.mean(league_stats["divisions"][division]["mmr_list"])
league_stats["divisions"][division]["stdev"] = statistics.stdev(league_stats["divisions"][division]["mmr_list"])
# calculate zscore for individual players relative to league-wide and divisional means, generate rd2l badge based on player zscore
for team in season18:
for player in team["player"]:
player["division_zscore"] = (player["adjusted_mmr"] - league_stats["divisions"][team["division_name"]]["mean"])/league_stats["divisions"][team["division_name"]]["stdev"]
player["league_zscore"] = (player["adjusted_mmr"] - league_stats["mean"])/league_stats["stdev"]
player["rd2l_badge"] = rd2lBadge(player["league_zscore"])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment