-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy path__init__.py
More file actions
42 lines (39 loc) · 1.54 KB
/
__init__.py
File metadata and controls
42 lines (39 loc) · 1.54 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
36
37
38
39
40
41
42
from codeclash.arenas.arena import CodeArena
from codeclash.arenas.battlecode24.battlecode24 import BattleCode24Arena
from codeclash.arenas.battlecode25.battlecode25 import BattleCode25Arena
from codeclash.arenas.battlesnake.battlesnake import BattleSnakeArena
from codeclash.arenas.bridge.bridge import BridgeArena
from codeclash.arenas.chess.chess import ChessArena
from codeclash.arenas.corewar.corewar import CoreWarArena
from codeclash.arenas.dummy.dummy import DummyArena
from codeclash.arenas.figgie.figgie import FiggieArena
from codeclash.arenas.gomoku.gomoku import GomokuArena
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
ARENAS = [
BattleCode24Arena,
BattleCode25Arena,
BattleSnakeArena,
BridgeArena,
ChessArena,
CoreWarArena,
DummyArena,
FiggieArena,
GomokuArena,
HaliteArena,
Halite2Arena,
Halite3Arena,
HuskyBenchArena,
RoboCodeArena,
RobotRumbleArena,
]
# 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)