def build_bracket_tree(bracket_depth, players): new_node = TreeNode() if bracket_depth == 1: new_node.player_one = players.pop() new_node.player_two = players.pop() # TODO(ericslchiang): Fix seeding later, for now fill in order else: new_node.left = build_bracket_tree(bracket_depth - 1, players) new_node.right = build_bracket_tree(bracket_depth - 1, players) return new_node
def simulate_tournament(winners, losers): placings = [] losers_levels = [] simulate_winners(winners, losers_levels) losers_levels.reverse() simulate_losers(losers, losers_levels, placings) grand_finals = TreeNode() losers_finals = TreeNode() wf_winner, wf_loser = get_results(winners.player_one, winners.player_two) ls_winner, ls_loser = get_results(losers.player_one, losers.player_two) placings.append(ls_loser) losers_finals.player_one = wf_loser losers_finals.player_two = ls_winner lf_winner, lf_loser = get_results(losers_finals.player_one, losers_finals.player_two) placings.append(lf_loser) grand_finals.player_one = wf_winner grand_finals.player_two = lf_winner gf_winner, gf_loser = get_results(grand_finals.player_one, grand_finals.player_two) if not gf_winner == grand_finals.player_one: gf_winner, gf_loser = get_results(grand_finals.player_one, grand_finals.player_two) placings.append(gf_loser) placings.append(gf_winner) return placings