Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

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

Re: Schwierigkeiten mit Game of Life Algorithmus

  Alt 12. Dez 2005, 08:15
Zitat von fabiO:
Delphi-Quellcode:
...
      if (alt[i,k] = 1) AND (nachbarn(i,k) = (2 or 3))
...
Wirklich so implementiert? Oder ist das Pseudocode? Du vergleichst, ob die Anzahl der Nachbarn gleich dem Ergebnis des Terms '2 or 3' ist.
Denn (2 or 3) ergibt 10 or 11 (binär) ergibt 11(binär) also 3. Nur wenn ich 3 Nachbarn habe, bleibe ich am Leben. Der Mittlere würde demnach auch sterben, denn er hat 2 Nachbarn. Genau das passiert bei Dir aber.

Du müsstest das umformulieren:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var n,i,k : Integer;
begin
  for i := 1 to high(alt) do
    for k := 1 to length(alt) do begin
      n := Nachbarn (i,k);
      if (alt[i,k] = 1) AND not (n in [2,3]) then // <---
        neu[i,k] := 0;
      if (alt [i,k] = 0) AND (n = 3) then
        neu[i,k] := 1;
    end;
...
end;
Dann sollte alles so funktionieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat