if maze[start_row][start_column=tried or maze[start_row][start_column=dead_endreturn false we have found an outside edge not occupied by an obstacle if maze is_exit(start_row,start_column)maze update_position(start_rowstart_columnpart_of_pathreturn true maze update_position(start_rowstart_columntriedotherwiseuse logical short circuiting to try each direction in turn (if neededfound search_from(mazestart_row- start_columnor search_from(mazestart_row+ start_columnor search_from(mazestart_rowstart_column- or search_from(mazestart_rowstart_column+ if foundmaze update_position(start_rowstart_columnpart_of_pathelsemaze update_position(start_rowstart_columndead_endreturn found my_maze maze('maze txt'my_maze draw_maze(my_maze update_position(my_maze start_rowmy_maze start_colsearch_from(my_mazemy_maze start_rowmy_maze start_colself check modify the maze search program so that the calls to searchfrom are in different order watch the program run can you explain why the behavior is differentcan you predict what path the turtle will follow for given change in order summary in this we have looked at examples of several recursive algorithms these algorithms were chosen to expose you to several different problems where recursion is an effective problem-solving technique the key points to remember from this are as followsall recursive algorithms must have base case recursive algorithm must change its state and make progress toward the base case recursive algorithm must call itself (recursivelyrecursion can take the place of iteration in some cases recursive algorithms often map very naturally to formal expression of the problem you are trying to solve recursion