def create_teams(self):
def calculate_team_elo(team):
return int(sum([player.elo for player in team]) / len(team))
elo_list = []
players = set(self.players.all())
possibilities = itertools.combinations(players, 3)
for possibility in possibilities:
team1 = possibility
team2 = players - set(team1)
elo1 = calculate_team_elo(team1)
elo2 = calculate_team_elo(team2)
elo_list.append((abs(elo1 - elo2), team1, team2))
ideal_teams = sorted(elo_list, key=itemgetter(0))[0]
self.gameplayerrelation_set\
.filter(player__id__in=[player.id for player in ideal_teams[1]]).update(team=GamePlayerRelation.Team1)
self.gameplayerrelation_set \
.filter(player__id__in=[player.id for player in ideal_teams[2]]).update(team=GamePlayerRelation.Team2)
print(ideal_teams[0])
self.save()
评论列表
文章目录