Ich habe eine Methode zum rekursiven Generieren einfacher Dungeonkarten entwickelt, indem ich mit einem Raum begonnen und rekursiv neue benachbarte Räume zufällig damit verbunden habe.
Karten werden als zweidimensionale Arrays dargestellt, wobei jede Zelle einen Wert von 0-15 enthält. 0 steht für keinen Raum, während jede Richtung durch Nord = 1, Ost = 2, Süd = 4, West = 8 dargestellt wird.
Ich wollte mit einem einzelnen Nicht-Raum ([[0]]) beginnen und dann das 2D-Array nach Bedarf erweitern, um es an die generierte Karte anzupassen. Die Schwierigkeit, mit der ich bei dieser baumartigen Rekursion konfrontiert bin, besteht darin, dass ich die aktuelle Position der Funktion anpassen muss, an welcher Zeile und in welcher Spalte sie sich befindet, wenn die Arrays verschoben werden müssen, um Zeilen und Spalten links und oben auf der Karte hinzuzufügen . Dies führt dazu, dass separate Zweige keine Anpassungen des Array-Index von anderen Zweigen kennen. Nur ihre untergeordneten Funktionen wissen dies, da ihnen die angepasste Position als Zeilen- und Spaltenargumente übergeben wurde.
Gibt es eine Möglichkeit, dies zu tun? Ich habe versucht, Zeilen- und Spaltenversatzwerte außerhalb der Rekursion zu speichern, aber es hat aus irgendeinem Grund nicht funktioniert.