Hallo,
ich versuche mich gerade an einem MineSweeper Klon (Die Frage passt trotzdem nicht in den Mulimedia Bereich). Jetzt bekomme ich wenn ich leere Felder aufdecken will einen Stack Überlauf. Ich benutzte eine Rekursive Prozedur um alle aufzudecken. Jetzt kommen ja solche Stack Überlaufungen ja eigentlich nur bei Endlosschleifen, und nicht einfach bei solch Rekursiven PR's. Also ich hoffe, dass ihr vielleicht aus dem Code sehen könnt warum ich diesen Fehler bekomme. Ich bin mit meinem Latein am Ende
.
Delphi-Quellcode:
PROCEDURE TForm1.GetArea(x,y: Integer);
BEGIN (* PROC TForm1.GetArea *)
field[x,y].hidden := false;
field[x,y].q := false;
IF field[x,y].Index = 14 THEN // 14 steht für ein leeres Feld, d.h. die umliegenden müssen aufgedeckt werden
BEGIN (* IF field[x,y].Index = 14 *)
IF (x>0) AND (y>0) THEN
GetArea (x-1, y-1);
IF x > 0 THEN
GetArea (x-1, y);
IF y > 0 THEN
GetArea (x, y-1);
IF x < 9 THEN
GetArea (x+1, y);
IF y < 9 THEN
GetArea (x, y+1);
IF (x<9) AND (y<9) THEN
GetArea (x+1, y+1);
IF (x<9) AND (y>0) THEN
GetArea (x+1, y-1);
IF (x<0) AND (y<9) THEN
GetArea (x-1, y+1);
END; (* IF field[x,y].Index = 14 *)
END; (* PROC TForm1.GetArea *)
Danke für alle antworten!