Ein Simulationsschritt

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

/*
 * bewege alle Tiere der Art `art'
 */
void bewege_tiere(char art)
{  int zeile, spalte;

   for (zeile = 0; zeile < ZEILEN; ++ zeile)
      for (spalte = 0; spalte < SPALTEN; ++ spalte)
         if (! gezogen[zeile][spalte] && wator[zeile][spalte] == art)
	    bewege_tier(zeile, spalte);
}
wator.c
for (chronos = 0; wator_ausgabe(), weiter(); ++chronos)
{  init_gezogen();
   bewege_tiere(FISCH);
   bewege_tiere(HAI);
}

*Während eines Simulationsschrittes werden zuerst die Fische und dann die Haie bewegt.
 
*Die Tiere werden nicht in zufälliger Reihenfolge bewegt -- stattdessen wird der gesamte Planet Feld für Feld abgearbeitet und bei Vorhandensein eines entsprechenden Tieres bearbeitet.
 
*Damit Tiere nicht versehentlich mehrfach innerhalb eines Schrittes bewegt werden, gibt es das Feld gezogen, das von init_gezogen vor jeder Runde initialisiert werden muß.
 

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