Hallo!
Ich wollte ein Sudoku-Rätsel-Programm schreiben, wo der PC selber per random ein Sudoku erstellt. Hierzu habe ich erstmal die erste Zeile generiert und wollte diese dann ausgeben lassen.
Dabei wurde mir folgender Fehler angezeigt:
Zugriffsverletzung bei 0x0040597d: Schreiben von Adresse 0x00030cd4. Prozess angehalten.
Mein Quellcode:
Delphi-Quellcode:
procedure TForm1.BTErstellenClick(Sender: TObject);
var i,a:integer;
begin
setlength(sudoku,80);
for i:=0 to 80 do
sudoku[i]:=0;
randomize;
a:=random(9)+1;
sudoku[0]:=a;
zahl0.Text:=inttostr(sudoku[0]);
a:=random(9)+1;
while a=sudoku[0] do
a:=random(9)+1;
sudoku[1]:=a;
zahl1.Text:=inttostr(sudoku[1]);
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) do
a:=random(9)+1;
sudoku[2]:=a;
zahl2.Text:=inttostr(sudoku[2]);
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) do
a:=random(9)+1;
sudoku[3]:=a;
zahl3.Text:=inttostr(sudoku[3]);
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) or (a=sudoku[3]) do
a:=random(9)+1;
sudoku[4]:=a;
zahl4.Text:=inttostr(sudoku[4]);
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) or (a=sudoku[3])
or (a=sudoku[4]) do
a:=random(9)+1;
sudoku[5]:=a;
zahl5.text:=inttostr(sudoku[5]);
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) or (a=sudoku[3])
or (a=sudoku[4]) or (a=sudoku[5]) do
a:=random(9)+1;
sudoku[6]:=a;
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) or (a=sudoku[3])
or (a=sudoku[4]) or (a=sudoku[5]) or (a=sudoku[6]) do
a:=random(9)+1;
sudoku[7]:=a;
a:=random(9)+1;
while (a=sudoku[0]) or (a=sudoku[1]) or (a=sudoku[2]) or (a=sudoku[3])
or (a=sudoku[4]) or (a=sudoku[5]) or (a=sudoku[6]) or (a=sudoku[7]) do
a:=random(9)+1;
sudoku[8]:=a;
end;
Nach "zahl5.text:=inttostr(sudoku[5]);" wird der Fehler angezeigt, wenn ich diese Zeile ans Ende setze, läuft er die anderen Zeilen problemlos durch und zeigt dann wieder den Fehler an. Wenn ich die Zeile komplett weglasse und 2mal auf den Button klicke, dann kommt der Fehler ebenfalls. Sudoku ist ein global vereinbarter array of integer.
Kann mir jemand bitte helfen?
THX im Voraus!