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()