fixed schedule generation for real this time

This commit is contained in:
Sakimori 2021-01-29 15:27:51 -05:00
parent 7f23235709
commit c613ebe136

View file

@ -154,6 +154,7 @@ class league_structure(object):
a_home = not a_home a_home = not a_home
for i in range(0, self.constraints["inter_div_games"]): #inter-division matchups for i in range(0, self.constraints["inter_div_games"]): #inter-division matchups
extra_teams = []
for subleague in league.keys(): for subleague in league.keys():
division_max = 1 division_max = 1
divisions = [] divisions = []
@ -164,9 +165,6 @@ class league_structure(object):
last_div = None last_div = None
if len(divisions) % 2 != 0: if len(divisions) % 2 != 0:
if division_max % 2 != 0:
divisions.append(["OFF" for i in range(0, division_max)])
else:
last_div = divisions.pop() last_div = divisions.pop()
divs_a = list(chain(divisions[int(len(divisions)/2):]))[0] divs_a = list(chain(divisions[int(len(divisions)/2):]))[0]
@ -179,6 +177,11 @@ class league_structure(object):
divs_a.extend(last_div[:int(len(last_div)/2)]) divs_a.extend(last_div[:int(len(last_div)/2)])
random.shuffle(divs_b) random.shuffle(divs_b)
if len(divs_a) % 2 != 0:
extra_teams.append(divs_a.pop())
if len(divs_b) % 2 != 0:
extra_teams.append(divs_b.pop())
a_home = True a_home = True
for team_a, team_b in zip(divs_a, divs_b): for team_a, team_b in zip(divs_a, divs_b):
if a_home: if a_home:
@ -187,6 +190,11 @@ class league_structure(object):
matchups.append([team_a.name, team_b.name]) matchups.append([team_a.name, team_b.name])
a_home = not a_home a_home = not a_home
if extra_teams != []:
if len(extra_teams) % 2 == 0:
for index in range(0, int(len(extra_teams)/2)):
matchups.append(extra_teams[index], extra_teams[index+1])
for subleague in league.keys(): for subleague in league.keys():
for division in league[subleague].values(): #generate round-robin matchups for division in league[subleague].values(): #generate round-robin matchups