-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy path__init__.py
More file actions
35 lines (32 loc) · 1.29 KB
/
__init__.py
File metadata and controls
35 lines (32 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from codeclash.arenas.arena import CodeArena
from codeclash.arenas.battlecode.battlecode import BattleCodeArena
from codeclash.arenas.battlesnake.battlesnake import BattleSnakeArena
from codeclash.arenas.corewar.corewar import CoreWarArena
from codeclash.arenas.dummy.dummy import DummyArena
from codeclash.arenas.halite.halite import HaliteArena
from codeclash.arenas.halite2.halite2 import Halite2Arena
from codeclash.arenas.halite3.halite3 import Halite3Arena
from codeclash.arenas.huskybench.huskybench import HuskyBenchArena
from codeclash.arenas.robocode.robocode import RoboCodeArena
from codeclash.arenas.robotrumble.robotrumble import RobotRumbleArena
from codeclash.arenas.texasholdem.texasholdem import ShortDeckHoldemArena, TexasHoldemArena
ARENAS = [
BattleCodeArena,
BattleSnakeArena,
CoreWarArena,
DummyArena,
HaliteArena,
Halite2Arena,
Halite3Arena,
HuskyBenchArena,
RoboCodeArena,
RobotRumbleArena,
ShortDeckHoldemArena,
TexasHoldemArena,
]
# might consider postponing imports to avoid loading things we don't need
def get_arena(config: dict, **kwargs) -> CodeArena:
game = {x.name: x for x in ARENAS}.get(config["game"]["name"])
if game is None:
raise ValueError(f"Unknown game: {config['game']['name']}")
return game(config, **kwargs)