def evaluate(self, s: State, a: Action) -> Tuple[float, State]: r, s = GridWorld.evaluate(self, s, a) if self.__in_cliff__(s): r = -100 s = self.start return r, s