Ich habe etwas Ähnliches geschrieben, wie Sie es für einen automatisierten Bildschirmschoner-ähnlichen Klon von Civilization 1 suchen. Für die Aufzeichnung habe ich dies in VB.net geschrieben, aber da Sie in Ihrer Frage nichts über Sprache oder Plattform erwähnen, werde ich es behalten es abstrakt.
Die "Karte" gibt die Anzahl der Kontinente, die Abweichung der Kontinentgröße (z. B. 1,0 würde alle Kontinente mit derselben ungefähren Landfläche halten, bis zu 0,1 würde es Kontinenten ermöglichen, mit 1/10 der Masse des größten Kontinents zu existieren) und die maximale Landfläche an (als Prozentsatz) zu generieren, und die zentrale Landbias. Ein "Keim" wird für jeden Kontinent zufällig auf der Karte verteilt und gemäß der zentralen Vorspannung zur Mitte der Karte gewichtet (z. B. erzeugt eine niedrige Vorspannung verteilte Kontinente, die der Erde ähnlicher sind, wobei eine hohe zentrale Vorspannung eher einer ähnelt Pangaea). Dann weisen die "Samen" für jede Iteration des Wachstums Landplättchen gemäß einem Verteilungsalgorithmus zu (dazu später mehr), bis eine maximale Landfläche erreicht ist.
Der Landverteilungsalgorithmus kann so präzise sein, wie Sie möchten, aber ich habe interessantere Ergebnisse gefunden, indem ich verschiedene genetische Algorithmen angewendet und die Würfel gewürfelt habe. Conways "Game of Life" ist wirklich einfach zu beginnen. Sie müssen EINIGE global bewusste Logik hinzufügen, um zu vermeiden, dass Dinge wie Kontinente ineinander wachsen, aber zum größten Teil kümmern sich die Dinge um sich selbst. Das Problem, das ich bei fraktaleren Ansätzen fand (was meine erste Neigung war), war, dass die Ergebnisse entweder zu strukturiert aussahen oder zu zu vielen Szenarien führten, in denen Regeln für die Problemumgehung mit Hacky-Feeling erforderlich waren, um ein Ergebnis zu erzielen, das sich immer noch nicht dynamisch genug anfühlte. Abhängig von dem von Ihnen verwendeten Algorithmus möchten Sie möglicherweise einen "Unschärfe" -Pass über das Ergebnis anwenden, um Dinge wie reichlich vorhandene quadratische Ozeankacheln und karierte Küsten zu beseitigen. Für den Fall, dass so etwas wie ein Kontinent entsteht, der von mehreren anderen umgeben ist und nirgendwo mehr wachsen kann, verschieben Sie den Samen an einen neuen Punkt auf der Karte und setzen Sie die Wachstumspässe fort. Ja, es kann bedeuten, dass Sie manchmal mehr Kontinente als geplant haben, aber wenn Sie dies wirklich nicht wollen, können Sie die Wachstumsalgorithmen so beeinflussen, dass sie das Wachstum in die Richtung mit der geringsten Nähe zu anderen begünstigen Saat. Im schlimmsten Fall (meiner Meinung nach jedenfalls) können Sie eine Serie als ungültig markieren, wenn ein Samen nirgendwo mehr wachsen und eine neue Karte erstellen kann. Stellen Sie einfach sicher, dass Sie eine maximale Anzahl von Versuchen festlegen. Wenn also etwas Unrealistisches angegeben wird (z. B. das Anpassen von 50 gleichgewichteten Kontinenten auf ein 10x10-Board), wird nicht ewig versucht, eine gültige Lösung zu finden.
Ich kann nicht dafür bürgen, wie Civ usw. es macht, und natürlich nicht Dinge wie Klima, Landalter usw. abdecken, aber wenn Sie mit dem Samenwachstumsalgorithmus herumspielen, können Sie ziemlich interessante Ergebnisse erzielen, die Kontinenten, Archipelen usw. ähneln Verwenden Sie den gleichen Ansatz, um auch „organisch“ aussehende Flüsse, Gebirgszüge usw. zu produzieren.