Hier nochmal die ganze Prozedur:
Delphi-Quellcode:
procedure p_Nachbarn(x,y:integer);
var i,j,k:integer;
begin
k := 0;
{ das funktioniert
If Feld[x,y+1] = 1 then inc(k,1);
If Feld[x+1,y+1] = 1 then inc(k,1);
If Feld[x+1,y] = 1 then inc(k,1);
If Feld[x+1,y-1] = 1 then inc(k,1);
If Feld[x,y-1] = 1 then inc(k,1);
If Feld[x-1,y-1] = 1 then inc(k,1);
If Feld[x-1,y] = 1 then inc(k,1);
If Feld[x-1,y+1] = 1 then inc(k,1); }
For i := x-1 to x+1 do
For j := y-1 to y+1 do
If (i<>x)and(j<>y)and(Feld[i,j] = 1) then inc(k,1);
Nachbarn := k;
end;
Ich habe gerade mal ein kleines Array mit Nullen gefüllt, bis auf die Felder [1,1][2,1][3,1], diese mit einer 1;
Die einzelne Abfrage hat mir für das Feld[2,2] 3 zurückgegeben - was korrekt ist, die Schleife aber nur 2.