Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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