Un script Python pour générer un labyrinthe 2D aléatoire de n'importe quelle taille en utilisant l'algorithme d'Eller. La sortie est une définition de tableau OpenSCAD avec des espaces vides et des murs représentés par 0 et 1 respectivement.
Pour plus d'informations sur l'algorithme d'Eller, voir ici :
http://weblog.jamisbuck.org/2010/12/29/maze-generation-eller-s-algorithm
Institutions
J'ai l'intention d'utiliser cela à terme pour générer aléatoirement un labyrinthe de boulons/boîtes avec des murs intérieurs lisses.
Le nombre de cellules horizontales et verticales est spécifié sur la ligne de commande :
./eller_generator.py 15 5 > maze_new.scad
Générer la définition du labyrinthe devrait être très rapide, mais la compilation dans OpenSCAD peut prendre un certain temps en fonction de la taille du labyrinthe.
En utilisant la somme de Minkowski, vous pouvez générer des bords arrondis (voir le fichier STL/SCAD 'punch'). La compilation de cela prend beaucoup de temps (environ 5 minutes pour le fichier d'exemple en raison des bords qui se croisent), mais l'affichage est assez rapide.
Mise à jour du 26 décembre 2013 : correction d'un bug X/Y dans le code OpenSCAD pour le dessin du labyrinthe.
Mise à jour du 26 décembre 2013 : bug de division en virgule flottante corrigé dans le calcul de la probabilité de coupure.
Mise à jour du 26 décembre 2013 : l'altitude d'extrusion du labyrinthe a été ajustée à la hauteur du labyrinthe.
Mise à jour du 27 décembre 2013 : Le bug de l'union d'ensembles qui provoquait la formation de boucles a été corrigé.
Tags
Model Source
