Map-Generator - wie programmieren?

  • schaut ganz gut aus, aber irgendwie zu musterhaft, zu regelmäßig.

    versuch vielleicht mal folgendes:

    1. erstelle nur wiese.gesamtkarte
    2.1 erzeuge random-seed wald. (zwei oder mehr waldfelder dürfen evt nicht nebeneinander liegen)
    2.2 prüfen doppelschleife, ob waldseed. wenn ja, dann jeweils entsprechend waldanteil=waldwahrscheinlichkeit "fluten".
    3. analog zu 2.1, 2.2 erzeuge gebirge
    4. analog zu 2.1, 2.2 erzeuge wasser
    5. verbinde wasserflächen (flächenschwerpunkte als start/ziel) mit randomisierten "wegen"
    6. prüfe auf anteil wiese, wald, gebirge laut vorgaben
    7. reduziere die ränder der großen wassenflächen randomartig um die fehlenden anteile der wiese, wald, gebirgsflächen
    8. leb mit dem restfehler - it's a feature.


    "fluten" (Beispiel), alles ist wiese, 44 ist rs(Wald),

    00 01 02 03 04 05 06 07 08 09
    10 11 12 13 14 15 16 17 18 19
    20 21 22 23 24 25 26 27 28 29
    30 31 32 33 34 35 36 37 38 39
    40 41 42 43 W 45 46 47 48 49
    50 51 52 53 54 55 56 57 58 59
    60 61 62 63 64 65 66 67 68 69
    70 71 72 73 74 75 76 77 78 79
    80 81 82 83 84 85 86 87 88 89
    90 91 92 93 94 95 96 97 98 99

    waldanteil = 0,2, heißt also, von 5 feldern werden 1,2 wald:

    00 01 02 03 04 05 06 07 08 09
    10 11 12 13 14 15 16 17 18 19
    20 21 22 23 24 25 26 27 28 29
    30 31 32 33 34 35 36 37 38 39
    40 41 42 43 W 45 46 47 48 49
    50 51 52 53 54 55 56 57 58 59
    60 61 62 63 64 65 66 67 68 69
    70 71 72 73 74 75 76 77 78 79
    80 81 82 83 84 85 86 87 88 89
    90 91 92 93 94 95 96 97 98 99

    vom W-feld wird jetzt eine 'nachricht" an jedes nachbarfeld (fett) geschickt, wald zu basteln. ist es schon wald, abbruch. klappts nicht mit dem waldbasteln, ist der vektor auch zu ende. klappt es, wird die koordinate in eine liste mit den jetzt neuen waldfeldern bezüglich 'W' angelegt. für jedes element der liste(n) wird das fluten wiederholt.

    ist ein hübscher rekursiver algorithmus. wichtig: breiten-, nicht tiefensuche.


    kannst zusammenhängende bereiche dadurch begünstigen, daß die wahrscheinlichkeit, ein waldfeld zu erzeugen, mit der anzahl vorhandener benachbarter waldfelder steigt. allerding könntest du dann einen gesamtwaldfeldzähler einsetzen, der bei überschreiten der waldanteilsgrenze die wahrscheinlichkeit für wald wieder proportional reduziert :)

    :feuerteufel: rs longa vita bre:hoppel:is: Entia non sunt multiplicanda praeter necessitatem.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!