def sim_step()

in ml3/envs/mountain_car.py [0:0]


    def sim_step(self, state, action):
        position = state[0]
        velocity = state[1]

        velocity = velocity + (self.g * self.m * np.cos(3 * position) + (action / self.m) - (self.k * velocity)) * self.delta_t
        position = position + (velocity * self.delta_t)

        if (velocity > self.max_speed): velocity = self.max_speed
        if (velocity < -self.max_speed): velocity = -self.max_speed

        if (position > self.max_position): position = self.max_position
        if (position < self.min_position): position = self.min_position
        if (position==self.min_position and velocity<0): velocity = 0

        new_state = np.array([position, velocity])
        return new_state.squeeze()