Thema: Delphi Sudoku Logik

Einzelnen Beitrag anzeigen

hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#66

AW: Sudoku Logik

  Alt 4. Mär 2011, 22:36
@Jumpy
Ich glaube nicht, dass da der Fehler liegt. Ich hatte das (um ehrlich zu sein) bei mir nichtmal in der Unit drin. Weiß nicht, wo das bei dir hergekommen ist. Braucht man ja eigentlich auch nicht, oder?

Ich hab gerade überlegt, ob es möglicherweise woanders dran liegen könnte: Wenn jetzt ein Teilsudoku erstellt wird, bei dem ab einer bestimmten Stelle einfach keine Lösung mehr möglich ist, dann bricht der ja nicht ab. Vlt müsste man da was einstellen, dass wenn die Funktion false zurückliefert man die nochmal von vorne aufruft...

Ich komm auch mit dem Teil noch nicht ganz klar:
Delphi-Quellcode:
while ValidDecision.Count > 0 do
  begin
    dig:=ValidDecision[random(ValidDecision.Count)];
    if DigitIsOk(i,StrToInt(dig)) then
    begin
      Form1.Map.Cells[X,Y]:=dig;
      if SetCell(i + 1) then // müsste hier nicht noch ein else-Zweig rein?
      begin
        Result:=True;
        Exit;
      end;
    end
    else
      ValidDecision.Delete(ValidDecision.IndexOf(dig));
  end;
Bei dem Kommentar, müsste da nicht noch ein else-Zweig rein, was passiert, wenn die Funktion false zurückgibt? Denn wenn sie das tut, wird darauf imho nicht reagiert...

LG, hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat