Das hab ich so umgesetzt
Delphi-Quellcode:
Function FnkNachbarn(i,j:integer):integer;
var Nachbarn :integer;
Begin
Nachbarn:= 0;
if curGen[i,j+1] = True then //unten
Nachbarn:= Nachbarn + 1;
if curGen[i,j-1] = True then //oben
Nachbarn:= Nachbarn + 1;
if curGen[i-1,j-1] = True then //links
Nachbarn:= Nachbarn + 1;
if curGen[i-1,j] = True then //links
Nachbarn:= Nachbarn + 1;
if curGen[i-1,j+1] = True then //links
Nachbarn:= Nachbarn + 1;
if curGen[i+1,j-1] = True then //rechts
Nachbarn:= Nachbarn + 1;
if curGen[i+1,j] = True then //rechts
Nachbarn:= Nachbarn + 1;
if curGen[i+1,j+1] = True then //rechts
Nachbarn:= Nachbarn + 1;
FnkNachbarn:=Nachbarn;
end;
Doch dabei tritt ja das Problem auf das wenn z.B. das Spielfeld auf die Größe 1x1 geändert wird das es ein Range Check Error gibt!
Doch ich wüßte jetzt nicht wie man das anders Programmieren könnte, vielleicht mit einer Bedingung die per getHoehe oder getBreite herausfindet wie groß das Spielfeld ist somit auch nur die wirklich existierenden Nachbarn überprüft(aber wie)???