private void CodigoAtividade(string filePath)
        {
            // CÓDIGO AQUI!!
            try
            {
                int lines, columns;
                // ler o arquivo texto de entrada
                StreamReader sr = File.OpenText(filePath);

                // ler e salva a dimensão da matriz do labirinto
                string[] vector = sr.ReadLine().Split(' ');
                lines   = int.Parse(vector[0]);
                columns = int.Parse(vector[1]);

                Maze maze1 = new Maze(lines, columns);

                // ler e salva o labirinto em si
                for (int l = 1; l <= lines; l++)
                {
                    string[] vector2 = sr.ReadLine().Split(' ');
                    for (int c = 1; c <= columns; c++)
                    {
                        Position positionAux = new Position(l, c);
                        maze1.AddComponent(positionAux, new MazeComponent(positionAux, maze1, vector2[c - 1]));
                    }
                }

                MazeChallenge mazeChallenge = new MazeChallenge(maze1);

                // verifica se no labirinto existe algum ponto de origem (X)
                mazeChallenge.IdentifyOriginPosition();

                // tenta encontrar a saída
                while (!mazeChallenge.ExitFound)
                {
                    mazeChallenge.ExecuteMovement();
                }

                // cria um arquivo para gravar a saída
                string outputFilePath = Path.GetDirectoryName(filePath) + @"\saida-" + Path.GetFileName(filePath);
                using (StreamWriter sw = File.CreateText(outputFilePath))
                {
                    foreach (var item in mazeChallenge.VisitedPositions)
                    {
                        sw.WriteLine(item);
                    }
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("An error occurred.");
                Console.WriteLine(e.Message);
            }
        }
 public void Reset(MazeChallenge mazeChallenge)
 {
     Challenge = mazeChallenge;
     isUsed    = false;
 }