from itertools import product
from copy import deepcopy
class Team:
def __init__(self, name: str, seed: int):
self.name: str = name
self.init_seed: int = seed
self.middle_seed: int = seed
self.wins: int = 0
self.losses: int = 0
self.opponents: list[Team] = []
self.buchholz: int = 0
t_teams = list[Team]
def swiss_sim_ex(teams: t_teams):
n = len(teams) // 2
c = 0
# 第一轮
round1_all_results = product([0, 1], repeat=n)
for round1_results in round1_all_results:
round1_teams = deepcopy(teams)
round1_pairs = round1_pairing(round1_teams)
simulate_matches_ex(round1_pairs, round1_results)
# 第二轮
round2_all_results = product([0, 1], repeat=n)
for round2_results in round2_all_results:
round2_teams = deepcopy(round1_teams)
round2_pairs = round2_pairing(round2_teams)
simulate_matches_ex(round2_pairs, round2_results)
# 第三轮
round3_pairs = round3_pairing(round2_teams)
if not round3_pairs:
c += 1
print(round1_results, round2_results)
print(f"共{c}种回溯情况")
NUM_TEAM = 16
teams = [Team(f"Team{i + 1}", i + 1) for i in range(NUM_TEAM)]
swiss_sim_ex(teams)