++++++++++++ +++++++++++++++++++++the internal representation of the maze is list of lists each row of the maze_list instance variable is also list this secondary list contains one character per square using the characters described above for the data file shown above the internal representation looks like the following['+','+','+','+','+','+','+','+','+','+','+']['+',',',',',',','+',',',']['+',','+',','+','+',','+',','+','+']['+',','+',',',',','+',','+','+']['+','+','+',','+','+',','+',',','+']['+',',',','+','+',',',',','+']['+','+','+','+','+','+','+','+','+',','+']['+',',',','+','+',',','+',','+']['+',','+','+',',','+',',',','+']['+',',',',',','+',','+','+','+']['+','+','+','+','+','+','+',','+','+','+']the update_position methodas shown below uses the same internal representation to see if the turtle has run into wall it also updates the internal representation with or "-to indicate that the turtle has visited particular square or if the square is part of dead end in additionthe update_position method uses two helper methodsmove_turtle and drop_bread_crumbto update the view on the screen finallythe is_exit method uses the current position of the turtle to test for an exit condition an exit condition is whenever the turtle has navigated to the edge of the mazeeither row zero or column zeroor the far right column or the bottom row class mazedef __init__(selfmaze_file_name)rows_in_maze columns_in_maze self maze_list [maze_file open(maze_file_name,' 'rows_in_maze for line in maze_filerow_list [col for ch in line[:- ]row_list append(chif ch =' 'self start_row rows_in_maze self start_col col col col rows_in_maze rows_in_maze self maze_list append(row_list exploring maze