Einzelnen Beitrag anzeigen

fabiO

Registriert seit: 5. Dez 2004
Ort: Jena
41 Beiträge
 
Delphi 6 Personal
 
#4

Re: Schwierigkeiten mit Game of Life Algorithmus

  Alt 11. Dez 2005, 23:46
Hallo,

Danke für den Tipp mit dem 2ten Feld.
Ich hab das mal so realisiert:

(neu ist wie alt ein Array[1..50] of Integer)

Delphi-Quellcode:
procedure Tform1.ausgeben;
var i,k : Integer;
begin
  for i := 1 to high(alt) do
    for k := 1 to length(alt) do
      Stringgrid1.Cells[i-1,k-1] := IntToStr(alt[i,k]);
end;

procedure Tform1.einlesen;
var i,k : Integer;
begin
  for i := 1 to 50 do
    for k := 1 to 50 do
      alt[i,k] := neu[i,k];
end;

procedure TForm1.Button1Click(Sender: TObject);
var i,k : Integer;
begin
  for i := 1 to high(alt) do
    for k := 1 to length(alt) do
    begin
      if (alt[i,k] = 1) AND (nachbarn(i,k) <> (2 or 3))
        then neu[i,k] := 0;
      if (alt [i,k] = 0) AND (nachbarn(i,k) = 3)
        then neu[i,k] := 1;
    end;

  einlesen;
  ausgeben;
end;
Funktionieren tuts nun fast richtig, denn nun geschiet folgendes:

Beispiel: [o] = tot, [x] = lebend

[o][o][o][o][o]
[o][x][x][x][o]
[o][o][o][o][o]

nach einem Zyklus sollte es so aussehen:

[o][o][x][o][o]
[o][o][x][o][o]
[o][o][x][o][o]

Bei mir sieht es aber so aus:

[o][o][x][o][o]
[o][o][o][o][o]
[o][o][x][o][o]

Das heisst, es wird immernoch nicht richtig umgesetzt...
Wieso funktioniert es immernoch nicht ?
Und desweiteren, wie sag ich dem Programm, dass das Feld umlaufend sein soll?

gruß fabiO
  Mit Zitat antworten Zitat