class_docstr: Memory-requiring Env: Best sequence of actions depends on prev. states.
  
  Optimal behavior:
      0) a=0 -> observe next state (s'), which is the "hidden" state.
          If a=1 here, the hidden state is not observed.
      1) a=1 to always jump to s=2 (not matter what the prev. state was).
      2) a=1 to move to s=3.
      3) a=1 to move to s=4.
      4) a=0 OR 1 depending on s' observed after 0): +10 reward and done.
          otherwise: -10 reward and done.
class_docstr_tok: ["Memory-requiring","Env",":","Best","sequence","of","actions","depends","on","prev",".","states",".","Optimal","behavior",":","0",")","a=0","-",">","observe","next","state","(","s","'",")",",","which","is","the","``","hidden","''","state",".","If","a=1","here",",","the","hidden","state","is","not","observed",".","1",")","a=1","to","always","jump","to","s=2","(","not","matter","what","the","prev",".","state","was",")",".","2",")","a=1","to","move","to","s=3",".","3",")","a=1","to","move","to","s=4",".","4",")","a=0","OR","1","depending","on","s","'","observed","after","0",")",":","+10","reward","and","done",".","otherwise",":","-10","reward","and","done","."]
code: def __init__(self):
      self.action_space = gym.spaces.Discrete(2)
      self.observation_space = gym.spaces.Discrete(5)
      self._state = None
      self._case = None
  
file_path: ray/python/ray/rllib/examples/env/look_and_push.py
imports: import gymnasium
  import numpy
label_desc: Use image node_id 1 to create a new LookAndPush object from inherited base classes: gym with example: obj = LookAndPush()