Einzelnen Beitrag anzeigen

Octom

Registriert seit: 14. Nov 2013
4 Beiträge
 
#1

Index überschreitet Maximum einer liste

  Alt 14. Nov 2013, 20:32
Delphi-Version: 5
Ich versuche gerade ein Programm zu schreiben, dass das 8-Damen Problem lösen soll. Dabei habe ich ein stringgrid(8x8) und alle leeren felder werden mit einer 0 versehen. Das feld mit der platzierten Dame kriegt ein @ und die Felder, die die Dame bedroht sollen mit einem # versehen werden. Horizontal und vertikal funktioniert zwar alles, aber wenn ich versuche die diagonalen einzutragen kommt die Meldung, dass der index das maximum der liste(-1) überschreitet.

Delphi-Quellcode:
for d:=0 to (Stringgrid1.colcount-1) do begin
  Stringgrid1.Cells[col,0+d]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-1) do begin
  Stringgrid1.Cells[0+d,row]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-1) do begin //notlösung
  Stringgrid1.Cells[col+d,row+d]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-(Stringgrid1.colcount-col)) do begin
  Stringgrid1.Cells[col-d,row-d]:='#'; //notlösung
  Stringgrid1.cells[col, row]:='@';
Die ersten 3 schleifen funktionieren. die vierte funkioniert zwar manchmal, aber es kommt zu 100% zu einer fehlermeldung.

Ich programmier nicht sehr lange mit delphi, weshalb die frage wahrscheinlich eine banale antwort hat. ich komme aber nicht darauf.
Auch hab ich mich extra wegen dieser frage in diesem Forum angemeldet und es tut mir leid, falls ich irgendwas in der art des postens falsch gemacht habe

Geändert von Octom (14. Nov 2013 um 21:05 Uhr)
  Mit Zitat antworten Zitat