def __init__(self, window, population, maze, stats_height=160, **kwagrs): # TODO ability to handle hiding statistics super(ExperimentMode, self).__init__() self.paused = False self.window = window self.width = window.width self.height = window.height self.groups = BatchGroup() grid_size = (self.height-stats_height) // GRID_SCALE, self.width // GRID_SCALE maze = maze if maze is not None else Walls(grid_size) env = Environment(maze, GRID_SCALE, FOOD_INIT_PROB) env.set_stats(Statistics.for_shape(self.width)) env.set_population(population) # split window self.env_view = EnvironmentView(env, self.width, self.height-stats_height, **kwagrs) self.stats_view = StatsView(env.stats, 0, self.height-stats_height, self.width, stats_height, **kwagrs) self.groups.add_objects([self.env_view, self.stats_view])