AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung

Ein Thema von Chii · begonnen am 30. Jun 2006 · letzter Beitrag vom 30. Jun 2006
 
Chii

Registriert seit: 30. Jun 2006
4 Beiträge
 
#1

Zugriffsverletzung

  Alt 30. Jun 2006, 09:10
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!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz