Skip to content

Commit 847dc91

Browse files
authored
Merge pull request #262 from huangshiyu13/main
add RandomAgent for Arena
2 parents 986bd77 + a2df15d commit 847dc91

File tree

5 files changed

+47
-8
lines changed

5 files changed

+47
-8
lines changed

examples/arena/evaluate_more_envs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
""""""
1818

1919
from pettingzoo.butterfly import cooperative_pong_v5
20-
from pettingzoo.classic import connect_four_v3, go_v5, texas_holdem_no_limit_v6,rps_v2
20+
from pettingzoo.classic import connect_four_v3, go_v5, rps_v2, texas_holdem_no_limit_v6
2121
from pettingzoo.mpe import simple_push_v3
2222

23-
2423
from openrl.arena import make_arena
2524
from openrl.arena.agents.local_agent import LocalAgent
25+
from openrl.arena.agents.random_agent import RandomAgent
2626
from openrl.envs.PettingZoo.registration import register
2727
from openrl.envs.wrappers.pettingzoo_wrappers import RecordWinner
2828

@@ -79,7 +79,7 @@ def run_arena(
7979
arena = make_arena(env_id, env_wrappers=env_wrappers, use_tqdm=False)
8080

8181
agent1 = LocalAgent("../selfplay/opponent_templates/random_opponent")
82-
agent2 = LocalAgent("../selfplay/opponent_templates/random_opponent")
82+
agent2 = RandomAgent()
8383

8484
arena.reset(
8585
agents={"agent1": agent1, "agent2": agent2},

examples/arena/run_arena.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
""""""
1818
from openrl.arena import make_arena
1919
from openrl.arena.agents.local_agent import LocalAgent
20+
from openrl.arena.agents.random_agent import RandomAgent
2021
from openrl.envs.wrappers.pettingzoo_wrappers import RecordWinner
2122

2223

@@ -37,7 +38,7 @@ def run_arena(
3738
arena = make_arena("tictactoe_v3", env_wrappers=env_wrappers, use_tqdm=use_tqdm)
3839

3940
agent1 = LocalAgent("../selfplay/opponent_templates/random_opponent")
40-
agent2 = LocalAgent("../selfplay/opponent_templates/random_opponent")
41+
agent2 = RandomAgent()
4142

4243
arena.reset(
4344
agents={"agent1": agent1, "agent2": agent2},
@@ -52,5 +53,12 @@ def run_arena(
5253

5354

5455
if __name__ == "__main__":
55-
run_arena(render=False, parallel=True, seed=0, total_games=100, max_game_onetime=10)
56-
# run_arena(render=False, parallel=False, seed=1, total_games=1, max_game_onetime=1,use_tqdm=False)
56+
# run_arena(render=False, parallel=True, seed=0, total_games=100, max_game_onetime=10)
57+
run_arena(
58+
render=False,
59+
parallel=False,
60+
seed=1,
61+
total_games=300,
62+
max_game_onetime=1,
63+
use_tqdm=False,
64+
)

openrl/arena/agents/random_agent.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
# Copyright 2023 The OpenRL Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
""""""
18+
from openrl.arena.agents.base_agent import BaseAgent
19+
from openrl.selfplay.opponents.base_opponent import BaseOpponent
20+
from openrl.selfplay.opponents.random_opponent import RandomOpponent
21+
from openrl.selfplay.opponents.utils import load_opponent_from_path
22+
23+
24+
class RandomAgent(BaseAgent):
25+
def __init__(self):
26+
super().__init__()
27+
28+
def _new_agent(self) -> BaseOpponent:
29+
return RandomOpponent()

tests/test_arena/test_new_envs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from examples.custom_env.rock_paper_scissors import RockPaperScissors
2727
from openrl.arena import make_arena
2828
from openrl.arena.agents.local_agent import LocalAgent
29+
from openrl.arena.agents.random_agent import RandomAgent
2930
from openrl.envs.PettingZoo.registration import register
3031
from openrl.envs.wrappers.pettingzoo_wrappers import RecordWinner
3132

@@ -82,7 +83,7 @@ def run_arena(
8283
arena = make_arena(env_id, env_wrappers=env_wrappers, use_tqdm=False)
8384

8485
agent1 = LocalAgent("./examples/selfplay/opponent_templates/random_opponent")
85-
agent2 = LocalAgent("./examples/selfplay/opponent_templates/random_opponent")
86+
agent2 = RandomAgent()
8687

8788
arena.reset(
8889
agents={"agent1": agent1, "agent2": agent2},

tests/test_arena/test_reproducibility.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
from openrl.arena import make_arena
2424
from openrl.arena.agents.local_agent import LocalAgent
25+
from openrl.arena.agents.random_agent import RandomAgent
2526
from openrl.envs.wrappers.pettingzoo_wrappers import RecordWinner
2627

2728

@@ -41,7 +42,7 @@ def run_arena(
4142
arena = make_arena("tictactoe_v3", env_wrappers=env_wrappers, use_tqdm=False)
4243

4344
agent1 = LocalAgent("./examples/selfplay/opponent_templates/random_opponent")
44-
agent2 = LocalAgent("./examples/selfplay/opponent_templates/random_opponent")
45+
agent2 = RandomAgent()
4546

4647
arena.reset(
4748
agents={"agent1": agent1, "agent2": agent2},

0 commit comments

Comments
 (0)