Cross Evaluating Random Players

Complete source code for this example is available here.

A similar example using gen 7 mechanics is available here.

This example illustrates how to locally run existing agents and utilize the cross_evaluate utility function to measure the relative performance of multiple agents.

Install tabulate for formatting results by running pip install tabulate.

from poke_env.player import RandomPlayer, cross_evaluate
from tabulate import tabulate

# Create three random players
players = [RandomPlayer(max_concurrent_battles=10) for _ in range(3)]

# Cross evaluate players: each player plays 20 games against every other player
cross_evaluation = await cross_evaluate(players, n_challenges=20)

# Prepare results for display
table = [["-"] + [p.username for p in players]]
for p_1, results in cross_evaluation.items():
    table.append([p_1] + [cross_evaluation[p_1][p_2] for p_2 in results])

# Display results

--------------  --------------  --------------  --------------
-               RandomPlayer 1  RandomPlayer 2  RandomPlayer 3
RandomPlayer 1                  0.45            0.45
RandomPlayer 2  0.55                            0.65
RandomPlayer 3  0.55            0.35
--------------  --------------  --------------  --------------

Running the above cells will output a table displaying the results of the cross evaluation among the players.

For creating custom players, refer to the max_damage_player example.

For diving into Reinforcement Learning, check out the rl_with_open_ai_gym_wrapper example.