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