Erstmal danke für deine Antwort... aber jetzt geht das Prog leider gar nicht mehr...
Wenn man jetzt auf neues Spiel klickt, dann hängt sich das Programm auf. Im TaskManager steht dann "Keine Rückmeldung". Bin mal mit dem Debugger rübergegangen, da haben auch alle Funktionen richtig funktioniert, aber leider war hing das Prgramm nach 10 min noch...
Vlt könntest du dir nochmal den Quelltext anschauen.
Delphi-Quellcode:
function CreateNewSudoku(Size: integer) : integer;
var
x,y,nr: Integer;
begin
Randomize;
PrepareMap(Size);
nr:=0;
for x := 0 to Size - 1 do //for1
begin
for y := 0 to Size - 1 do //for2
begin
while not (DigitIsOk(x,y,Size-1,nr)) do
begin
nr:=random(4)+1;
end;
Form1.Map.Cells[y,x]:=IntToStr(nr);
end; //for1
end; //for2
end;
function DigitIsOK(X,Y,Size,Digit: integer):boolean;
var
i: Integer;
begin
Result:=True;
if not(Digit = 0) then
begin
for i := 0 to Size do
begin
if (Digit = StrToInt(Form1.Map.Cells[X,i])) OR
(Digit = StrToInt(Form1.Map.Cells[i,Y])) then
begin
Result:=False;
Break;
end;
end;
end
else
Result:=false;
end;