## Constants
RENDER_CHARTS = True

#################
# Setup agents  #
#################
players[0] = A2CAgent(
    action_space=132,
    observation_space=env.observation_space,
    n_latent_var=128,
    K_epochs=4,
    gamma=0.999,
    network_save_name='/agents/A2CAgent/saved_models/A2C_test_2',
    network_load_name=None)
names[0] = "A2C Agent"
players[1] = random_actions(env.num_actions_per_turn, 1, map_name)
names[1] = 'Random Agent'
#################

actions = {}

## Set high episode to test convergence
# Change back to resonable setting for other testing
n_episodes = 2500

#########################
# Statistic variables   #
#########################
k = 50  # Used for average win rates
p = 5  # Print episodic results every p episodes
stats = AgentStatistics(names[0],
    map_name=map_name,
    train=False,
    network_save_name=None,
    network_load_name=None,
)
names[0] = "DQN Agent"

# Create an array of all agents that could be used during training
opposing_agents = [
    {
        'name': 'Random Agent Delay',
        'agent': random_actions_delay(env.num_actions_per_turn, 1, map_name)
    },
    {
        'name': 'Random Agent',
        'agent': random_actions(env.num_actions_per_turn, 1, map_name)
    },
    {
        'name': 'Bull Rush',
        'agent': bull_rush(env.num_actions_per_turn, 1)
    },
    {
        'name': 'All Cycle',
        'agent': all_cycle(env.num_actions_per_turn, 1)
    },
    {
        'name': 'Base Rush v1',
        'agent': base_rushV1(env.num_actions_per_turn, 1)
    },
    {
        'name': 'Cycle Rush Turn 25',