Backtracking und Frustration

werkuh

Mitglied
einen wunderschönen guten abend wünsche ich.. ich muss mich leider mal wieder mit einem problem(chen) melden...

ich hänge gerade an nem sudokulöser fest, der via rekursion und backtracking ein vorgegebens sudoku lösen soll.. an und für sich klappt auch alles hervorragend, bis auf ein paar kleinigkeiten.

die lösung, die ich bei der ersten spalte erhalte ist komplett richtig, alles andere ist in teilen richtig oder totaler murks.

Java:
/**
   * Rekursiver Lösungsansatz
   *
   * @param zeile, spalte : Eingabeparameter für Funktionsaufruf
   *
   * @ return: true, wenn erfolgreich, false, wenn nicht
   */
  public static boolean loese(int zeile, int spalte) {
    // wenn Zeile noch nicht zuende, Spalte + 1
    if (spalte < 9) {
      spalte++;
    }
    // wenn Zeile voll, gehe zur nächsten
    else {
      zeile++;
      spalte = 0;

    }

    // Wenn fertig, gib true zurück
    if ((spalte == 8) && (zeile == 8)) {
      return true;
    }

    // Wenn Zahl gesetzt, loese naechstes Feld
    if (sudoku[zeile][spalte] > 0) {
      return loese(zeile, spalte + 1);
    }

    // Probier die möglichen Zahlen aus
    for (int zahl = 1; zahl < 10; zahl++) {
      if ((pruefeZeile(zeile, zahl) == false) &&
            (pruefeSpalte(spalte, zahl) == false) &&
            (pruefeFeld(zeile, spalte, zahl) == false)) {
        sudoku[zeile][spalte] = zahl;

        // Wenns klappt, dann mach gefäligst weiter
        if (loese(zeile, spalte + 1)) {
          return true;
        }
      }
    }

    // Wenn nicht, dann setz das Feld zurück
    sudoku[zeile][spalte] = 0;

    return false;
  }

irgendwo da liegt der hund begraben, die methode wird mit den parametern 0 für zeile und -1 für spalte aufgerufen und soll dann eigentlich ihr werk verrichten.

ich bin mit meinem spärlichen latein mittlerweile am ende und würde mich tierisch freuen, wenn mir jemand einfach nur sagen könnte, wo ich was falsch gemacht hab :)
 

xyZman

Bekanntes Mitglied
schau mal in mein Sudoku ein paar Zeilen unter dem Topic. Da hab ich eine Backtracking methode die funktioniert.
Nur die Ausgabe hapert
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Max246Sch 3D Box Filler BAcktracking Java Basics - Anfänger-Themen 1
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
districon Backtracking Java Basics - Anfänger-Themen 2
districon Backtracking Java Basics - Anfänger-Themen 14
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
V Backtracking und Rekursion Java Basics - Anfänger-Themen 15
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
O Backtracking Java Basics - Anfänger-Themen 5
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
A Backtracking Java Basics - Anfänger-Themen 56
R Backtracking Java Basics - Anfänger-Themen 1
V Feld sortieren mit Backtracking Java Basics - Anfänger-Themen 1
A Sudoku mit Backtracking lösen Java Basics - Anfänger-Themen 3
L Sudoku Backtracking Pseudocode Java Basics - Anfänger-Themen 3
N Backtracking - Labyrinth/Irrgarten Java Basics - Anfänger-Themen 14
I Backtracking Schach Java Basics - Anfänger-Themen 5
L Magisches Quadrat und Backtracking Java Basics - Anfänger-Themen 19
M Backtracking/Solve Methode Java Basics - Anfänger-Themen 7
P Labyrinth, Backtracking, verzögerte Anzeige Java Basics - Anfänger-Themen 15
D Sudoku lösen mit Backtracking Java Basics - Anfänger-Themen 20
E backtracking und Induktionsprinzip Java Basics - Anfänger-Themen 2
D Backtracking Waage Problem Java Basics - Anfänger-Themen 23
N Backtracking Solohalma Java Basics - Anfänger-Themen 2
X Sudoku Backtracking Java Basics - Anfänger-Themen 6
J Solitaire via Backtracking Java Basics - Anfänger-Themen 7
A Backtracking - kennt Java keine Rücksprungmarken? Java Basics - Anfänger-Themen 15
G Backtracking mit globaler Variable Java Basics - Anfänger-Themen 5
M BackTracking Java Basics - Anfänger-Themen 22
J Backtracking Algorithmus Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben