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