Maze Generator

Introduzione

Immagina di essere in un labirinto. Come ne usciresti? Esiste una teoria matematica in grado di rispondere a questa domanda a prescindere dalla complessità e grandezza del labirinto? È possibile implementare questa teoria all'iterno di un computer al fine di risolvere qualsiasi labirinto in poco tempo?

Un labirinto 48x28 generato con l'algoritmo di Kruskal, con la soluzione trovata dall'algoritmo Breadth-First-Search (BFS)
Un labirinto 48x28 generato con l'algoritmo di Kruskal, con la soluzione trovata dall'algoritmo Breadth-First-Search (BFS)

Sì, è possibile, e la risposta arriva dalla teoria dei grafi, una delle più importanti teorie matematiche con svariate applicazioni all'informatica. Questa teoria ci permette sia di risolvere qualsiasi labirinto e sia di generare in modo procedurale labirinti di varia natura.

Un labirinto con il suo grafo
Un labirinto con il suo grafo

L'obiettivo di questo progetto è implementare sia un generatore procedurale di labirinti che un solver che dato un labirinto ritorna la sequenza di passi per risolvere il labirinto. A tale fine sarà necessario introdurre svariati argomenti di particolare interesse per l'informatica, come le visite dei grafi, i cammini minimi, l'algoritmo di Dijkstra, l'algoritmo A*, l'algoritmo di Kruskal, e via dicendo.

Struttura del progetto

4 Milestone
~
13 Step