Detalhamento da tarefa:
Escrever um programa (usando OBRIGATORIAMENTE a estrutura de State/Solver passada em aula) para percorrer um labirinto qualquer, especificado como uma matriz de dimensões n (linhas) por m (colunas).
A matriz deve ser fornecida já preenchida para a o primeiro método solver(), que deverá percorrer o labirinto usando backtracking, indo do ponto inicial 'I' até o final 'F'. Uma vez encontrada a saída, o algoritmo deve parar. Se não houver saída, o programa precisa também identificar essa situação. Por exemplo, um labirinto inicial poderia ser especificado da seguinte forma:
##I################### #..#........#........# #.##.#.######.#..##..# #....#........#......F ######################