Maze solving algorithm