class_docstr: A high level game controller class for maze levels.
  
  The class allows navigating DMLab mazes using high level actions.
class_docstr_tok: ["A","high","level","game","controller","class","for","maze","levels",".","The","class","allows","navigating","DMLab","mazes","using","high","level","actions","."]
docstr: Return the current maze as a numpy array (0 - corridors, 1 - walls).
docstr_tok: ["Return","the","current","maze","as","a","numpy","array","(","0","-","corridors",",","1","-","walls",")","."]
code: def _get_maze(self):
      """Return the current maze as a numpy array (0 - corridors, 1 - walls)."""
      if self._maze is None:
          maze_str = self._env.observations()[
              "DEBUG.MAZE.LAYOUT"
          ].strip()
          lines = maze_str.split("\n")
  
          height = len(lines)
          width = 0
          for line in lines:
              width = max(width, len(line))
  
          maze = np.zeros((width, height), dtype=np.int32)
  
          for j, line in enumerate(lines):
              for i, cell in enumerate(line):
                  if cell == _WALL_SYMBOL:
                      maze[i, j] = 1
          self._maze = maze
      return self._maze
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  from python.tests.utils import game_controller
label_desc: Use image node_id 8 for calling the MazeGameController obj's underlying member method code with example usage: obj._get_maze() and returns: self