Sudoku rekursiv lösen



  • yo leute, soll hier dieses sudoku lösen in dem in den ersten zwei vektoren spalten und reihen und im dritten ein vektor mit den möglichkeiten für Diese ist.
    Das eigentliche sudoku in das die ersten möglichen werte (backtracking alg)dann eingetragen werden hab ich mit s übergeben. Funzt allerdings nicht so richtig..
    n steht übrigens für zeilen spaltenlänge(3*3/9)

    bool solve(vector<vector<vector<int>>> &sud, int y, int x, int n, vector<vector<int>>& s) {

    if (y ==(n-1)&&x==(n-1)) {
    return true;
    }
    else {
    bool f(false);
    int p(0);
    while (p < sud[y][x].size()) {
    if (!f) {
    if (fits_into_cell(s, x, y, n / 3, sud[y][x][p])) {


    if (x == (n - 1)) {
    f = solve(sud, y + 1, 0, n, s);
    }
    else {
    f = solve(sud, y, x + 1, n, s);
    }
    if (f == false) {

    }
    }
    }
    ++p;
    }
    return f;
    }
    }



  • nevermind habs schon gelöst 😛



  • Fürs nächste mal bitte die code tags benutzen und ordentlich einrücken, das erleichtert allgemeind as lesen und helfen ungemein.


Anmelden zum Antworten