-
Notifications
You must be signed in to change notification settings - Fork 10
/
GameSwitcher.py
33 lines (29 loc) · 1.28 KB
/
GameSwitcher.py
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
import importlib
class_names_dict = {
'botanik': 'Botanik',
'minivilles': 'Minivilles',
'santorini': 'Santorini',
'smallworld': 'Smallworld',
'splendor': 'Splendor',
'thelittleprince': 'TLP'
}
def import_game(pkg_name):
class_name = class_names_dict.get(pkg_name)
if class_name is None:
raise Exception(f'Game {pkg_name} is not known, please chose a game among the following list: {list(class_names_dict.keys())}')
game_name = class_name + 'Game'
game_module = importlib.import_module(pkg_name + '.' + game_name)
game_class = getattr(game_module, game_name)
nnet_module = importlib.import_module(pkg_name + '.NNet')
nnet_class = getattr(nnet_module, 'NNetWrapper')
players_module = importlib.import_module(pkg_name + '.' + class_name + 'Players')
return game_class, nnet_class, players_module, getattr(game_module, "NUMBER_PLAYERS")
def import_logicnumba(pkg_name):
mdl = importlib.import_module(pkg_name + '.' + class_names_dict[pkg_name] + 'LogicNumba')
#if "__all__" in mdl.__dict__:
# names = mdl.__dict__["__all__"]
#else:
# names = [x for x in mdl.__dict__ if not x.startswith("_")]
# globals().update({k: getattr(mdl, k) for k in names})
board_class = getattr(mdl, 'Board')
return board_class