Exemplo n.º 1
0
def sim_gsl():
    # Initialize storage data structures
    group_finishes = list()
    top_seeds = list()
    second_seeds = list()

    # Generate groups
    groups_list = sim_functions.create_groups(player_list, 4)

    # Simulate each group
    for group in groups_list:
        group_winner, second_winner, eliminated_players = sim_functions.gsl_group(
            group, model, period_start, db)

        # Gather winners and losers
        top_seeds.append(group_winner)
        second_seeds.append(second_winner)
        #print(f"eliminated players: {eliminated_players}")
        group_finishes.append(eliminated_players)

    # Append results for losers
    for eliminated in group_finishes:
        for player in eliminated:
            #print(player)
            sim_results.loc[player]['group_stage'] += 1

    # Generate playoff matchups
    playoff_matchups = sim_functions.gen_gsl_playoffs(top_seeds, second_seeds,
                                                      groups_list)
    #print(playoff_matchups)
    # simulate playoffs
    playoff_results = sim_functions.playoffs_eight(playoff_matchups, model,\
                                                    period_start, db)

    #print(playoff_results.items())

    # Append rest of results
    # Check here for errors
    for finish, players in playoff_results.items():
        if type(players) == list:
            #print(f"{finish} : {players}")
            for player in players:
                #print(f"eliminated player: {player}")
                sim_results.loc[player][finish] += 1
        else:
            #print(f"{finish} : {players}")
            sim_results.loc[players][finish] += 1
Exemplo n.º 2
0
def sim_tournament():
    # Initialize group finishing data structures
    group_finishes = list()
    top_seeds = list()
    second_seeds = list()
    third_seeds = list()

    # Generate groups
    groups_lists = sim_functions.create_groups(player_list, 6)

    # Simulate each round robin group
    for group in groups_lists:
        group_standings, group_match_results = sim_functions.round_robin(
            group, model, period_start, db
        )

        ranked_group, eliminated_players = sim_functions.parse_round_robin(
            group_standings, group_match_results
        )

        # store results
        top_seeds.append(ranked_group[0])
        second_seeds.append(ranked_group[1])
        third_seeds.append(ranked_group[2])
        group_finishes.append(eliminated_players)
    
    # Store eliminated player results into DataFrame
    for eliminated in group_finishes:
        for player in eliminated:
            sim_results.loc[player, 'group_stage'] += 1
    
    # Run playoffs
    playoff_results = sim_functions.playoffs_sixteen(
        top_seeds, second_seeds, third_seeds, groups_lists, model, period_start, db
    )

    for finish, players in playoff_results.items():
        if type(players) == list:
            for player in players:
                sim_results.loc[player, finish] += 1
        else:
            sim_results.loc[players, finish] += 1
Exemplo n.º 3
0
# Player list from 2021 GSL Season 1
player_list = [
    'trap', 'zest', 'dream', 'zoun', 'innovation', 'armani', 'rogue', 'solar',
    'hurricane', 'sos', 'bunny', 'cure', 'ty', 'maru', 'dark', 'dongraegu'
]

# Period
# Touranment ran 2021-04-05 to 2021-05-06
period_start = '2021/04/05'

# Check player list is correct
assert len(player_list) == 16

# Create groups
# Groups should have 4 players each
groups_list = sim_functions.create_groups(player_list, 4)

# Check if previous files exist
# Load file
# Count how many sims were run
# Subtract 30000 to see how many more need to be run

# Store simulation information
finish_cols = ['group_stage', 'ro8', 'ro4', 'second', 'first']
sim_results = pd.DataFrame(0, index=player_list, columns=finish_cols)

# Designate number of simulations to run
n_sims = 30000

# Export results
filename = 'results/gsl_2021_sim_results.csv'
Exemplo n.º 4
0
def sim_gsl():
    # Initialize storage data structures
    # ro24
    ro24_finishes = list()
    ro24_winners = list()
    # ro16
    ro16_finishes = list()
    top_seeds = list()
    second_seeds = list()

    # RO 24
    # Generate groups
    ro24_groups = sim_functions.create_groups(player_list, 4)

    # Simulate each group
    for group in ro24_groups:
        group_winner, second_winner, eliminated_players = sim_functions.gsl_group(
            group, model, period_start, db)

        # Gather winners and losers
        ro24_winners.append(group_winner)
        ro24_winners.append(second_winner)
        #print(f"eliminated players: {eliminated_players}")
        ro24_finishes.append(eliminated_players)

    # Append results for ro24 losers
    for eliminated in ro24_finishes:
        for player in eliminated:
            #print(player)
            sim_results.loc[player]['ro24_groups'] += 1

    # RO 16
    # create player list
    ro16_players = seeded_players + ro24_winners
    # Generate groups
    ro16_groups = sim_functions.create_groups(ro16_players, 4)

    # Simulate each group
    for group in ro16_groups:
        winner, second, eliminated_players = sim_functions.gsl_group(
            group, model, period_start, db)

        top_seeds.append(winner)
        second_seeds.append(second)
        ro16_finishes.append(eliminated_players)
    # Record results for ro16 losers
    for eliminated in ro16_finishes:
        for player in eliminated:
            sim_results.loc[player]['ro16_groups'] += 1

    # Playoffs

    # Generate playoff matchups
    playoff_matchups = sim_functions.gen_gsl_playoffs(top_seeds, second_seeds,
                                                      ro16_groups)
    #print(playoff_matchups)
    # simulate playoffs
    playoff_results = sim_functions.playoffs_eight(playoff_matchups, model,\
                                                    period_start, db)

    #print(playoff_results.items())

    # Append rest of results
    # Check here for errors
    for finish, players in playoff_results.items():
        if type(players) == list:
            #print(f"{finish} : {players}")
            for player in players:
                #print(f"eliminated player: {player}")
                sim_results.loc[player][finish] += 1
        else:
            #print(f"{finish} : {players}")
            sim_results.loc[players][finish] += 1