Einzelnen Beitrag anzeigen

Necz

Registriert seit: 22. Mai 2008
14 Beiträge
 
#1

Kein Breakpoint auf result in if Abfrage möglich

  Alt 3. Mär 2011, 19:53
Tag zusammen, habe folgendes Problem:

Der folgende Algorithmus springt auch bei wahrer if-Abfrage nicht in die Anweisung.
Es ist mir auch nicht möglich einen Breakpoint auf result:=true zu setzen, füge ich einen weitere
Anweisung wie z.B.: col:=6 in den Anweisungsblock, kann ich einen Breakpoint setzen.

Delphi-Quellcode:
function TSudoku.SudokuBacktrack(row,col:integer):boolean;
var
zaehl:integer;
begin
  if col = 8 then
    begin
      inc(row);

      if row=8 then //springt nicht in if Abfrage wenn die Bedingung true ist, egal bei welcher Zahl als Bedingung für row
        begin
         result:=false; //setzen des Breakpoints nicht möglich (wird grün, also Anweisung nicht ausgeführt)
         row:=1; //hier ist der Breakpoint möglich
        end;
      col:=0;
    end;
  if SudokuFeld[row][col] > 0 then
    result:=SudokuBacktrack(row, col+1);
  for zaehl:=1 to 9 do
    begin
      if (CheckCol(Col,zaehl)) and (CheckRow(Row,zaehl)) and (CheckBlock(Row,Col,zaehl)) then
          begin
            SudokuFeld[row][col]:=zaehl;
            if SudokuBacktrack(row, col+1) then
              result:=true; //ebenfalls kein Breakpoint möglich
          end;
    end;
  SudokuFeld[row][col]:=0;
  result:=false;
end;

Um die Rekursion zu beenden müssen die if-Abfragen jedoch result:=true zurück geben.
Jemand eine Idee,wieso es nicht funktioniert?

Wäre sehr dankbar

Gruß Necz
Assembler: Tutorials,Tools,Downloads http://assembler-tutorials.pytalhost.de/
  Mit Zitat antworten Zitat