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; }