def __init__(self, layout: str, enable_render=True, state_active=False, player_lives: int = 3): """ PacmanEnv constructor :param layout: the layout of the game :param frame_to_skip: the frame to skip during training :param enable_render: enabling the display of the game screen :param state_active: enabling the display of the state matrix """ self.layout = layout self.state_active = state_active self.enable_render = enable_render if enable_render: pg.init() self.action_space = spaces.Discrete(Action.__len__()) self.maze = Map(layout) self.width, self.height = self.maze.get_map_sizes() self.game = Game( maze=self.maze, screen=Controller.get_screen(state_active, self.width, self.height) if enable_render else None, sounds_active=False, state_active=state_active, agent=None) self.timer = 0 self.reinit_game = False self.player_lives = player_lives self.observation_space = spaces.Space( shape=self.get_screen_rgb_array().shape, dtype=int) self.seed()