Mein Roguelike erzeugt eine Reihe von runden Räumen. Ich mag die aktuellen Ergebnisse, die ungefähr so aussehen:
Es wird erzeugt, indem zufällige Kreise in einem gefüllten Raum herausgeschnitten werden.
Ich habe ein Hauptproblem damit: Mehrere Kreise sind völlig unverbunden. Ich kann nicht genau herausfinden, welchen Algorithmus ich verwenden soll, um sie zu verbinden.
Ich habe versucht, "für jeden Kreis den nächsten Kreis zu finden und in seine Mitte zu tunneln (horizontal und dann vertikal)", aber ich bekomme stattdessen etwas Schreckliches (dieselbe Karte wie oben):
Was die richtige Passform zu sein scheint, ist so etwas wie "Finden Sie für jeden geschlossenen Raum den nächsten leeren Raum und tunneln Sie ihn an." Das scheint jedoch komplex zu sein (berechnen Sie für jeden kreisförmigen geschlossenen Raum die Entfernung zu jedem anderen Raum) und wird wahrscheinlich langsam sein (läuft auch auf Ruby)
Gibt es eine einfache Lösung für dieses Problem?