mirror of
https://github.com/FAUSheppy/open-web-leaderboard.git
synced 2025-12-06 07:01:36 +01:00
lol
This commit is contained in:
36
balance.py
Normal file
36
balance.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
def swap(teams, teamIndex, pos1, pos2):
|
||||||
|
tmp = teams[teamIndex][pos1]
|
||||||
|
teams[teamIndex][pos1] = teams[teamIndex][pos2]
|
||||||
|
teams[teamIndex][pos2] = tmp
|
||||||
|
|
||||||
|
def ratingDiff(team1, team2):
|
||||||
|
'''Positive if first > seconds, negative if second > first, 0 if equal'''
|
||||||
|
return sum([p.rating for p in team1]) - sum([p.rating for p in team2])
|
||||||
|
|
||||||
|
def balance(players):
|
||||||
|
|
||||||
|
# initial teams #
|
||||||
|
playersByRating = sorted(players, key=lambda p: p.rating)
|
||||||
|
|
||||||
|
teams = dict( { 0 : [] }, { 1 : [] } )
|
||||||
|
for i in range(0, len(playersByRating)):
|
||||||
|
teams[i%2] = playersByRating[i]
|
||||||
|
|
||||||
|
# optimize positions worst case ~8n^2 * 2log(n) #
|
||||||
|
for teamIndex in teamIndex.keys():
|
||||||
|
changed = True
|
||||||
|
while changed:
|
||||||
|
changed = False
|
||||||
|
for curIndex in range(0, len(teams[teamIndex]))
|
||||||
|
for compareIndex in range(curIndex, len(teams[teamIndex]))
|
||||||
|
if curIndex == compareIndex:
|
||||||
|
continue
|
||||||
|
elif swapBasedOnPos(curIndex, teams[teamIndex])
|
||||||
|
changed = True
|
||||||
|
swap(teams, teamIndex, curIndex, compareIndex)
|
||||||
|
|
||||||
|
# optimize ratings simple #
|
||||||
|
changedRating = True
|
||||||
|
while changedRating:
|
||||||
|
for curIndex in range(0, len(teams[0])):
|
||||||
|
if rating diff
|
||||||
22
server.py
22
server.py
@@ -95,28 +95,6 @@ def liveGames():
|
|||||||
rounds = db.getLiveGames()
|
rounds = db.getLiveGames()
|
||||||
return flask.render_template("livegames.html", liveGameRounds=rounds, noRounds=not bool(rounds))
|
return flask.render_template("livegames.html", liveGameRounds=rounds, noRounds=not bool(rounds))
|
||||||
|
|
||||||
@app.route("/maps")
|
|
||||||
def maps():
|
|
||||||
'''Show an overview of maps'''
|
|
||||||
|
|
||||||
db = DatabaseConnection(app.config["DB_PATH"])
|
|
||||||
start = datetime.datetime.now() - datetime.timedelta(days=4000)
|
|
||||||
end = datetime.datetime.now()
|
|
||||||
rounds = db.roundsBetweenDates(start, end)
|
|
||||||
distinctMaps = db.distinctMaps()
|
|
||||||
maps = []
|
|
||||||
for mapName in [ tupel[0] for tupel in distinctMaps]:
|
|
||||||
roundsWithMap = list(filter(lambda r: r.mapName == mapName , rounds))
|
|
||||||
maps += [MapSummary.MapSummary(roundsWithMap)]
|
|
||||||
|
|
||||||
allMaps = MapSummary.MapSummary(rounds)
|
|
||||||
allMaps.mapName = "All Maps*"
|
|
||||||
maps += [allMaps]
|
|
||||||
|
|
||||||
|
|
||||||
mapsFiltered = filter(lambda x: x.mapName, maps)
|
|
||||||
return flask.render_template("maps.html", maps=mapsFiltered)
|
|
||||||
|
|
||||||
@app.route("/rounds-by-timestamp")
|
@app.route("/rounds-by-timestamp")
|
||||||
@app.route("/rounds")
|
@app.route("/rounds")
|
||||||
def rounds():
|
def rounds():
|
||||||
|
|||||||
Reference in New Issue
Block a user