Ein Zufallskarten Generator schreiben



  • Hallo,

    ich möchte für ein Spiel was ich grade schreibe einen Zufallskartengenerator schreiben, der Anschließend die Karte in einem File speichert. Die Veratbeitung ist eigentlich ganz einfach, es sollen Zahlen von 1-44 generiert werden und dann in eine Datei geschrieben. Die Zahlen stehen für einzelne Terrain Arten.

    1-8 = Verschiedene Wüstenarten (Hell, dunkel, mittel, Hüglich etc)
    9-12 = Flusskurven (in jede Richtung eine)
    13-20 = Oasenrand
    21-24 = Oase
    25-26 = Fluss
    27-34 = Bergrand
    35 = Berg
    36-43 = Ozanrand
    44 = Ozean

    Beispielkartenfile:

    4              //Größe 4x4
    3 2 1  1       //Das Feld
    2 1 15 13
    1 1 14 21
    2 1 14 10
    1 1            // Start Spieler 1
    4 4            // Start Spieler 2
    

    Wie im Beispiel soll nicht alles Planlos drauf los generiert werden, sondern um Oasen muss ein Rand sein, genau so bei Bergen oder Ozeanen. Wüste 2 darf z.b. nur zwischen Wüste 1,2 oder 4 sein, es darf keinen Ozean an bergen geben, es dürfen sich keine Inseln bilden etc. etc..

    Ich möchte jetzt kein großes Codebeispiel oder so haben sondern nur ein paar Tipps oder falls es sowas gibt eine Grundsätzlich Vorgehensweise die mein vorhaben erleichtert.

    mfg.



  • Du kannst ja Schrittweise vorgehen. Am Anfang teilst du deine karte in Land und Ozean auf. Dann arbeitest du schrittweise das Land aus. Zum Beispiel erstmal grob die Wüstenzonen und den Berg. Jede Wüstenzone verfeinerst du dann einzeln usw. Zum Schluss kommen dann so Dinge wie Ozeanrand. Auch den Flusslauf kannst du zuerst mit einem Feldtyp "Fluss" generieren und dann den Verlauf analysieren, ob das nun eine Kurve nach rechts oder links war...



  • Was ist mit Flusskreuzungen?

    Zur allegemeinen Vorgehensweise:
    Zuerst Flächen mit simplen Typen füllen und dann danach den Typ verfeinern.

    z.B.: Zuerst nur Oasenfelder verwenden und danach die äußeren Oasenfelder zu passenden Oasenrandfeldern umzuwandeln (Designtechnisch würde ich aber eher dem Anzeigeprogramm überlassen, wie es "Wüste Ozean Ozean" zu interpretieren hat)

    Was ist mit Sonderfällen wo die gegeben 8 Ränder nicht ausreichen?
    Beispiel Ozean Küste

    vs.
     K K K
     K O K   K K K  
     K K K   K O<K>K K
             K K K O K
                <K>K K
    

    Wie genau sollen Wüste (+ Subtypen), Flüsse, Oase, Bern und Ozean verteilt sein?
    70% Wüste 30% Rest verstreut? Oder Viele Flüsse + an deren Schnittpunkten Oasen, wobei Flüsse einzelne Gebiete unterschiedlicher Biome (Ozean, Wüste, Berg) voneinader abtrennen.
    Davon hängt der zu verwendene Zufallsangorthmus ab.

    Sehe ich das richtig, dass immer neben Flüssen "Oasenränder" sind?



  • Danke ersmal für die Hilfe!

    Zur genauen Verteilung:

    - Der Großteil soll Wüste sein 75%
    - Oasen nur an Flüssen ... relativ selten (beides)(Oasen aber nicht an jedem Flussfeld
    - Berge Hauptsächlich am Spielfeldrand (aber auch in der Mitte)
    - Ozeane auch Häufig am Spielfeldrand, oder in Form von Seen überall(aber wieder nur selten)

    Zu den Binomen:

    - Ozeane dürfen nicht bei Bergen sein
    - Flüsse trennen die Binome nicht zwingend, Wüste und Berg oder Wüste und Ozean kann auch so nebeneinanderliegen
    - und wie schon gesagt, es dürfen keine Inseln entstehen.

    Zur Flusskreuzung... gute Frage 😃

    Zu deinem Beispiel mit den Sonderfällen:

    - Ich weiß was du meinst, aber ich glaube das so eine Situation vermeibar wäre, wenn nicht müsste ich noch ein paar Felder Hinzufügen.

    mfg.

    EDIT : nein, neben Flüssen muss kein Oasenrand sein, das ist in dem Beispiel nur Zufall und falls dir das alles noch ein bischen undurchdacht vorkommt, dass sind nur erste Überlegungen, ich muss noch einiges Hinzufügen z.b. unterschied: Fluss durch Wüste, Fluss durch Oase etc. Neue Terrain Arten kommen aber nicht hinzu.

    (nochmal) mfg. 🙂


Anmelden zum Antworten