1.8 KiB
1.8 KiB
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:
-
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.
- Generación: Inicializa una cuadrícula llena de muros (
-
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).
- Inicializa la ventana de SDL3 adaptando automáticamente el tamaño en píxeles según las dimensiones reales de la matriz (
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:
g++ -O3 main.cpp -o laberinto_sdl3 -lSDL3