Exemplo n.º 1
0
def init_new_players(teams, names, caps):
    players = []
    for i in xrange(len(teams)):
        for j in xrange(len(teams[i])):
            player_type = teams[i][j]
            player_name = names[i][j]
            if player_type == "InitCapRatePlayer":
                init = io_cap.input_cap_file("10000init.csv")
                players.append(CapRatePlayer(player_name, caps=init))
            elif player_type == "CapRatePlayer":
                players.append(player_type_to_class[player_type](player_name, caps=caps))
            else:
                players.append(player_type_to_class[player_type](player_name))
    return players
Exemplo n.º 2
0
def run(games, turns_per_game, teams, cap_rate_file="5000cap.csv"):
    caps = io_cap.input_cap_file(cap_rate_file)

    (names, player_to_team) = init_player_names(teams)
    flat_names = [player for team in names for player in team]
    def run_n_games(num_games):
        stats = {player: 0 for player in flat_names}
        for i in xrange(num_games):
            players = init_new_players(teams, names, caps)
            m = Monopoly(players=players)
            m.run(turns_per_game)
            if m.winner:
                stats[m.winner.name] += 1
        return stats

    thread_pool = ThreadPool(processes=NUM_THREADS)
    a = thread_pool.apply_async(run_n_games, (games / 4,))
    b = thread_pool.apply_async(run_n_games, (games / 4,))
    c = thread_pool.apply_async(run_n_games, (games / 4,))
    d = thread_pool.apply_async(run_n_games, (games / 4,))

    results = [a.get(), b.get(), c.get(), d.get()]
    return reduce_results_by_team(results, len(teams), player_to_team)
Exemplo n.º 3
0
def main():
    caps = io_cap.input_cap_file("100cap.csv")
    players = [BenchmarkPlayer(name="BenchmarkPlayer1"),
               CapRatePlayer(name="CapRatePlayer1", caps=caps)]
    m = Monopoly(players=players, debug_flag=True)
    m.run(10000)