Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Schwierigkeiten mit Game of Life Algorithmus

  Alt 12. Dez 2005, 14:28
Deine Funktion zum Zählen der Nachbarn ist doch fast schon perfekt, nur musst Du eben dafür sorgen, das nur legale Felder gezählt werden. Du kannst dazu aber der Einfachheit halber dein Feld etwas größer machen und die zusätzlichen Randfelder einfach leer lassen:
Delphi-Quellcode:
Var
  LifeWelt : Array [-1..51,-1..51] Of Integer; // bzw. Byte, reicht ja
So, nun zur Routine, die die nächste Generation ausrechnet. Ob eine Zelle stirbt oder geboren wird, hängt eindeutig von der Anzahl der Nachbarn ab, also mach es doch so:
Delphi-Quellcode:
For i:=0 to 50 do
  For j := 0 to 50 do
    Case Nachbarn (i,j) of
      2 : // Zwei Nachbarn: Die Zelle überlebt
        If alt[i,j]=1 then neu[i,j] := 1 else neu[i,j]:=0;
      3 : // Drei Nachbarn: Die Zelle überlebt bzw. wird neu geboren, also...
        neu[i,j] := 1; // lebt sie jetzt in jedem Fall
     else
       neu[i,j] := 0; // Alle anderen Fälle...
   End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat