Sudokufeld auf fehler prüfen



  • Hallo, ich habe lange überlegt wie das gehen soll, bin aber nicht auf das richtige Ergebnis gekommen. Also ich möchte prüfen ob in einem 3 x 3 Feld (mit 2 dimensionalem Array) alle Zahlen nur einmal stehen. Es können nur Zahlen von 1 bis 9 eingesetzt werden.
    Ich denke mal das müsste mit 2 for-Schleifen gehen aber ich komme einfach nicht drauf.
    bool check_win(){
    for(int i = 0; i < 9; i++){
    for(int o = 0; o < 9; o++){
    if(sudoku[i][o] == <Eine bereits vorhandene Zahl>)
    return false;
    else
    return true;
    }
    }
    }
    So in der art.
    MfG Bl4ckdream



  • Ein Array, in dem Du Dir merkst, welche Zahlen Du schon gesehen hast wäre z.B. eine Lösung:

    bool check_win(){
      bool seen[10] = { false };  // 9+1 bools, dann brauchen wir keinen Offset beim Zugriff
      for(int i = 0; i < 3; i++){
        for(int o = 0; o < 3; o++){
          if(seen[sudoku[i][o]] == true)
            return false;
          else
            seen[sudoku[i][o]] = true;
        }
      }
      return true;
    }
    

Anmelden zum Antworten