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;
}
Exemple #2
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);
}
Exemple #3
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);		
}