def reset_state()

in bisk/tasks/hurdleslimbo.py [0:0]


    def reset_state(self):
        super().reset_state()
        self.max_obstacles_cleared = 0
        xpos = 1
        intervals = self.np_random.uniform(3, 6, size=(self.n_obstacles,))
        assert self.n_obstacles % 2 == 0
        if self.fixed_height:
            bar_heights = np.zeros(self.n_obstacles // 2) + self.min_bar_height
            hurdle_heights = (
                np.zeros(self.n_obstacles // 2) + self.max_hurdle_height
            )
        else:
            bar_heights = self.np_random.uniform(
                self.min_bar_height,
                self.min_bar_height + 0.3,
                size=(self.n_obstacles // 2,),
            )
            hurdle_heights = self.np_random.uniform(
                0.1, self.max_hurdle_height, size=(self.n_obstacles // 2,)
            )
        self.obstacle_pos = []
        self.obstacle_type = []
        nm = self.p.named.model
        for i in range(self.n_obstacles):
            xpos += intervals[i]
            self.obstacle_pos.append(xpos)
            self.obstacle_type.append(i % 2)
            if i % 2 == 0:
                nm.geom_size[f'hurdle-{i}'][2] = hurdle_heights[i // 2]
                nm.geom_pos[f'hurdle-{i}'][0] = xpos
                nm.geom_pos[f'hurdle-{i}'][2] = (
                    hurdle_heights[i // 2] / 2 + 0.01
                )
            else:
                nm.geom_pos[f'bar-{i}'][0] = xpos
                nm.geom_pos[f'bar-{i}'][2] = (
                    bar_heights[i // 2] + nm.geom_size[f'bar-{i}'][0]
                )
                nm.geom_rgba[f'bar-{i}'] = [0.8, 0.9, 0.8, 1]
        self.bar_hit = [False] * self.n_obstacles
        self.new_bars_hit = set()