class_docstr: Use deltas in max(X) as the reward, rather than deltas
  in X. This way, agents are not discouraged too heavily
  from exploring backwards if there is no way to advance
  head-on in the level.
class_docstr_tok: ["Use","deltas","in","max","(","X",")","as","the","reward",",","rather","than","deltas","in","X",".","This","way",",","agents","are","not","discouraged","too","heavily","from","exploring","backwards","if","there","is","no","way","to","advance","head-on","in","the","level","."]
code: def step(self, action):  # pylint: disable=E0202
      obs, rew, done, info = self.env.step(action)
      self._cur_x += rew
      rew = max(0, self._cur_x - self._max_x)
      self._max_x = max(self._max_x, self._cur_x)
      return obs, rew, done, info
  
imports: from collections import deque
  import cv2
  from .atari_wrappers import WarpFrame, ClipRewardEnv, FrameStack, ScaledFloatFrame
  from .wrappers import TimeLimit
  import numpy
  import gym
label_desc: Use image node_id 3 for calling the AllowBacktracking obj's underlying member method code with example usage: obj.step(action) and returns: obs,  rew,  done,  info