Skip to content

MatiSamudio/maze-algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

maze-algorithm

Este proyecto implementa un generador y solucionador de laberintos en consola, utilizando algoritmos clásicos de grafos. Está desarrollado en C++ con una interfaz ASCII que permite visualizar la construcción y resolución del laberinto paso a paso.

Generación del laberinto:

El laberinto se genera con un algoritmo de búsqueda en profundidad recursiva (DFS Backtracking). A partir de la celda inicial (0,0), el algoritmo: Marca la celda como visitada. Mezcla aleatoriamente las 4 direcciones posibles. Avanza hacia celdas no visitadas, eliminando las paredes entre la actual y la siguiente. Se llama recursivamente para seguir expandiendo el laberinto hasta visitar todas las celdas. Este método garantiza un laberinto perfect maze (sin ciclos ni caminos redundantes).

Resolución del laberinto:

Se ofrecen dos formas de resolver el laberinto: DFS Backtracking: intenta avanzar por caminos posibles y retrocede cuando llega a un callejón sin salida. BFS (Breadth-First Search): explora el laberinto en anchura, asegurando encontrar el camino más corto desde la entrada a la salida. Ambos métodos muestran visualmente los caminos explorados (x) y la solución final (.).

Descubrimientos y análisis:

Durante el desarrollo se midieron los tiempos de ejecución de los algoritmos en distintos tamaños de laberintos. Se observó que: DFS es más rápido en laberintos pequeños, pero no garantiza el camino más corto. BFS es más lento en promedio, pero siempre encuentra la ruta óptima.

Qué haría diferente:

Modularizar aún más las funciones, especialmente separando entrada/salida de lógica pura. Agregar control de profundidad y conteo de pasos para comparar eficiencia. Evaluar otros algoritmos de generación como Prim o Kruskal para mayor variedad estructural.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages