void Maze::destroyMaze(MazeNode * node) { if (node == 0) return; node->setVisited(); for (int index = 0; index < node->getNumOfConnections(); index++) { if (node->getNode(index) != 0 && !(node->getNode(index)->isVisited())) destroyMaze(node->getNode(index)); } delete node; node = 0; }
int main(int argc, char const *argv[]) { maze_t *maze; if (argc != 3) { printf("\033[31;01mUsage: ./a.out nbCol nbLine\033[00m\n"); return (0); } maze = newMaze(strtol(argv[1], NULL, 10), strtol(argv[2], NULL, 10)); generate_maze(maze); // printCharArrayMaze(maze->array, maze->m, maze->n); printSDLCharArrayMaze(maze->array, maze->m, maze->n); destroyMaze(maze); return (0); }
int main(int argc, char **argv) { if (argc < 2) { printf("You need a valid input maze file.\n"); return -1; } printf("Creating maze with file %s\n", argv[1]); maze_t * maze = createMaze(argv[1]); printf("\nUnsolved maze:\n"); printMaze(maze); if(solveMazeManhattanDFS(maze, maze->startColumn, maze->startRow)) { printf("\nSolved maze:\n"); printMaze(maze); if(checkMaze(maze)) { printf("Solution to maze is valid\n"); } else { printf("Incorrect solution to maze\n"); } } else { printf("\nMaze is unsolvable\n"); } printf("\nDestroying maze\n"); destroyMaze(maze); return 0; }
Maze::~Maze() { clearVisited(root); destroyMaze(root); }