Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
Turbo Delphi für Win32
|
Re: Game Of Life - ich könnte etwas Hilfe gebrauchen, bitte
9. Feb 2008, 17:41
Zitat von marabu:
Delphi-Quellcode:
const
LifeSymbol: array [Boolean] of Char = (' ', '0'); // 0 = Leben, Leerzeichen = kein Leben
procedure TForm1.Button3Click(Sender: TObject);
var
i, j, k, l, counter: Integer; // hier und nicht anderswo
begin
for i := 1 to 8 do
for j:= 1 to 8 do
begin // block beginnen
counter := 0; // initialisieren
Inc(counter, Ord(OL[i - 1, j - 1]));
Inc(counter, Ord(OL[i + 1, j + 1]));
Inc(counter, Ord(OL[i + 1, j - 1]));
Inc(counter, Ord(OL[i - 1, j + 1]));
Inc(counter, Ord(OL[i, j - 1]));
Inc(counter, Ord(OL[i, j + 1]));
Inc(counter, Ord(OL[i - 1, j]));
Inc(counter, Ord(OL[i + 1, j]));
NL[i,j] := counter in [2, 3];
StringGrid1.Cells[i, j] := LifeSymbol[NL[i, j]];
end; // block beenden
end;
Geht auch kürzer:
Delphi-Quellcode:
const
LifeSymbol: array [Boolean] of Char = (' ', '0'); // 0 = Leben, Leerzeichen = kein Leben
procedure TForm1.Button3Click(Sender: TObject);
var
i, j, counter: Integer; // hier und nicht anderswo
begin
for i := 1 to 8 do
for j:= 1 to 8 do
begin // block beginnen
counter := 0; // initialisieren
for k := -1 to 1 do
for l := -1 to 1 do
Inc(counter, Ord(OL[i+k, j+l]));
NL[i,j] := counter in [2, 3];
StringGrid1.Cells[i, j] := LifeSymbol[NL[i, j]];
end; // block beenden
end;
(Ungetestet)
Nikolai Wyderka
SWIM SWIM HUNGRY!
Neuer Blog: hier!
|
|
Zitat
|