Erzeugung des Anfangszustands

 [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

wator.c
/*
 * fuellt `anzahl' mal das `lebewesen' gleichverteilt
 * auf Felder des Feldes `wator', wobei bereits belegte
 * Felder unangetastet bleiben;
 * `brut' ist der [hf]brut Parameter des entsprechenden Lebewesens
 */
void fuelle(int anzahl, char lebewesen, int brut)
{  int zeile, spalte;
   int i;

   for (i = 0; i < anzahl; ++i) {
      do {
         zeile = random(0, ZEILEN-1);
         spalte = random(0, SPALTEN-1);
      }
      while (wator[zeile][spalte] != LEER);
      wator[zeile][spalte] = lebewesen;
      geburt[zeile][spalte] = random(0, brut-1);
      hunger[zeile][spalte] = random(0, fasten-1);
   }
}

*fuelle besetzt Wator mit einer gegebenen Menge einer bestimmten Sorte von Lebewesen.
 
*Per Vorbedingung muß noch genügend Platz vorhanden sein. Ansonsten gibt es eine Endlos-Schleife.
 
*Der triviale Algorithmus ist nicht günstig für große Werte von ZEILEN und SPALTEN, wenn gleichzeitig nur noch wenige Plätze frei sind. In so einem Fall wäre es günstiger, wenn es freie Liste der noch freien Plätze gäbe.
 

 [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1998 Andreas Borchert, in HTML konvertiert am 01.12.1998