Ich habe meinen Ursprünglichen Algoritmus über den Haufen geworfen und einen anderen entwickelt der mich sehr zufrieden stellt.
1. Man beginnt mit einer leeren Karte die nur aus einem Flächentyp besteht (z.B. Gras)
2. Man wählt einen zufälligen Punkt auf der Karte, an dem eine zufällig geformte Fläche eines anderen Flächentyps (z.B. Wasser) entstehen soll
3. In einem array 'A' werden alle Punkte gespeichert die Teil des Randes der Fläche sind (an einen anderen Flächentyp grenzen)
4. Der erste Punkt wird gesetzt und in A gespeichert
5. Die Größe der Fläche wird festgelegt
Der obere Teil dient zur Initialisierung des Algorithmus
Nun kommt eine Schleife die abgebrochen wird wenn die Fläche ihre festgelegte Größe erreicht hat
1. Wähle zufälligen Punkt P aus A
2. Bestimme die Menge M der an P angrenzenden Punkte, die leer sind (bzw. Gras)
3. Wähle zufälligen Punkt P' aus M, setze den Flächenttyp und füge ihn in A ein
4. Prüfe welche an P' angrenzenden Randpunkte keine Randpunkte mehr sind und lösche diese
5. erhöhe den Zähler für die momentane Größe der Fläche
Damit erhält man zufällig geformte Flächen und somit einen Teil eines Zufallskartengenerator
Ich hab zwar noch einen kleinen Fehler drin und eher sinnlose Variablen und Funktionsnamen aber ich möchte den Quellcode hierzu dennoch zur Verfügung stellen, falls sich jemand näher dafür interessiert
Kartengenerator Source + Exe