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: Move the player along the path.
docstr_tok: ["Move","the","player","along","the","path","."]
code: def follow_path(self, path):
      """Move the player along the path."""
      path = self._expand_path(path)
  
      if not path:
          return False
  
      for (prev_x, prev_y), (x, y), (next_x, next_y) in zip(
          path, path[1:], path[2:]
      ):
          if next_x - x != x - prev_x or next_y - y != y - prev_y:
              world_x, world_y = self._to_world_coord(x, y)
              self._controller.move_to(world_x, world_y)
  
      (x, y) = path[-1]
      world_x, world_y = self._to_world_coord(x, y)
      self._controller.move_to(world_x, world_y)
      return True
  
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 4 for calling the MazeGameController obj's underlying member method code with example usage: obj.follow_path(path) and returns: True, False