Unknow Run-Time Error: 202

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Unknow Run-Time Error: 202

Beitrag von felix96 »

Hallo,
woran liegt hier der Fehler?

Code: Alles auswählen

procedure trefferauswertung(j,k: integer);
var l: integer;
    s: TObject;
begin
with form1 do begin
  l:=0;
   if j-1>=1 then if spielfeld[j-1,k]=bombe then inc(l);  //^^
   if j+1<=8 then if spielfeld[j+1,k]=bombe then inc(l);  //v
   if k-1>=1 then if spielfeld[j,k-1]=bombe then inc(l);  //<
   if k+1<=8 then if spielfeld[j,k+1]=bombe then inc(l);    //>
 
   if (j-1>=1)and(k-1>=1) then if spielfeld[j-1,k-1]=bombe then inc(l);  //^^
   if (j+1<=8)and(k+1<=8) then if spielfeld[j+1,k+1]=bombe then inc(l);  //v
   if (j+1<=8)and(k-1>=1) then if spielfeld[j+1,k-1]=bombe then inc(l);  //<
   if (j-1>=1)and(j+1<=8) then if spielfeld[j-1,k+1]=bombe then inc(l);    //>
 
   button[j,k].caption:=IntToStr(l);
 
   if l=0 then
     begin
       if (j+1<=8) then trefferauswertung(j+1,k);
       if (k+1<=8) then trefferauswertung(j,k+1);
       if (j-1>=1) then trefferauswertung(j-1,k);
       if (k-1>=1) then trefferauswertung(j,k-1);
 
       if (j-1>=1)and(k-1>=1) then trefferauswertung(j-1,k-1);
       if (j+1<=8)and(k+1<=8) then trefferauswertung(j+1,k+1);
       if (j+1<=8)and(k-1>=1) then trefferauswertung(j+1,k-1);
       if (j-1>=1)and(j+1<=8) then trefferauswertung(j-1,k+1);
     end;
end;
end;
Das soll mal ein Minesweeper-Spiel werden. Das funktioniert auch ganz gut. Nur ich will, dass wenn man auf eine 0 klickt, dass dann alle Nullen in der Umgebung ebenfalls aufgelistet werden. Das würde ja funktioniert wenn ich die Prozedur einfach mit einem Button neben dran noch einmal mache. Und wenn ich das jetzt mache kommt immer dieser ^^ Fehler von Windows, von Lazarus kommt nix. Spielfeld ist array, wo drinsteht, ob eine Bombe auf dem jeweiligen Feld liegt. j und k sind die x,y Variablen von Spielfeld.
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Unknow Run-Time Error: 202

Beitrag von Euklid »

felix96 hat geschrieben:Spielfeld ist array, wo drinsteht, ob eine Bombe auf dem jeweiligen Feld liegt. j und k sind die x,y Variablen von Spielfeld.
Hallo Felix,

die Fehlermeldung deutet darauf hin, dass du auf einen Bereich des Spielfeldes zugreifst, den es nicht gibt. D.h. Du musst (über setlength) das Spielfeld-array größer machen.

Viele Grüße, euklid

Antworten