Ce programme permet de générer des labyrinthes, où toutes les cases sont accessibles.
L'algorithme utilisé s'appuie sur les ensembles de Tarjan, expliqué plus bas.
Ce n'est qu'une version simple développée 'objet' qui pourra être intégrée facilement à d'autres projets.
Sur le même algorithme, j'ai fait 2 rendus :
1) un rendu 2D (l'image en preview), qui représente les murs sous forme de trait.
Peut servir pour des impressions de labyrinthes, par exemple
2) un rendu '3D', qui permet de créer un labyrinthe en ASCII. En clair, c'est une base pratique pour les cartes de jeux
Principe de création du labyrinthe :
- au départ, toutes les cellules sont dans un ensemble différent
- on fusionne 2 ensembles qui se touchent (en enlevant le mur entre les deux), et on en fait un ensemble commun
- on répète cette opération jusqu'à ce qu'il n'y ait plus qu'un seul ensemble.
- a ce moment là, le labyrinthe est créé, et toutes les cases sont accessibles de n'importe quelle autre
J'ai essayé d'optimiser un peu la fusion, pour éviter de chercher aléatoirement quel ensemble peut être relié à quel autre.