# Generador e Interactivo de Laberintos en C++ (SDL3) Este proyecto implementa un generador de laberintos aleatorios utilizando el algoritmo de **Recursive Backtracking (DFS)** en C++ y una interfaz gráfica interactiva mediante la librería **SDL3**. ## Resumen del Código El código está estructurado en una clase principal `Maze` y una función `main` interactiva: 1. **Clase `Maze`**: - **Generación**: Inicializa una cuadrícula llena de muros (`WALL = 1`) de tamaño `(2 * filas + 1) x (2 * columnas + 1)`. Aplica una búsqueda en profundidad (DFS) con una pila (`std::stack`) para "cavar" los pasillos de forma aleatoria, asegurando un laberinto perfecto (sin ciclos y con todas las celdas conectadas). - **Resolución**: Implementa un método recursivo basado en la exploración de grafos e ideas de la práctica (control de visitados y backtracking) para encontrar de manera óptima el camino único entre dos puntos cualesquiera. 2. **Interactividad (Función `main`)**: - Inicializa la ventana de **SDL3** adaptando automáticamente el tamaño en píxeles según las dimensiones reales de la matriz (`CELL_SIZE = 16`). - Escucha los clics del ratón en tiempo real sobre los pasillos vacíos: - **Clic Izquierdo**: Reubica el punto de **Inicio** (representado en verde). - **Clic Derecho**: Reubica el punto de **Fin** (representado en rojo). - Recalcula y redibuja instantáneamente la ruta más corta entre ambos puntos (marcada en azul celeste). ## Requisitos Previos Es necesario tener instalada la librería de desarrollo de **SDL3** en tu sistema. ## Comando para Compilar y Ejecutar Puedes compilar el archivo fuente (por ejemplo, `main.cpp`) desde la terminal utilizando tu compilador de C++ con soporte para C++11 o superior y enlazando la librería de SDL3: ```bash g++ -O3 main.cpp -o laberinto_sdl3 -lSDL3