Sudoku

gerscorpion

Neues Mitglied
Hallo liebes Forum, ich verzweifle gerade an einer Übungsaufgabe meines Javagrundkurses an der Uni. Bisher hat alles geklappt nur komme ich mit den 2d Arrayüberprüfungen nicht klar.

public class SudokuChecker {

//prüfen, ob ein 9x9 Sudoku übergeben wurde
static boolean dimensionenPruefen(int[][] sudoku) {
return true;
}

//prüfen, ob ein array die Zahlen 1-9 jeweils genau ein mal enthält
static boolean zahlen1bis9Vorhanden(int[] array) {
return true;
}

//prüft, ob alle zeilen jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
static boolean alleZeilenPruefen(int[][] sudoku) {
return true;
}

//prüft, ob alle spalten jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
//Hinweis: Erstellen Sie ein Array, welches die Zahlen der zu prüfenden Spalte enthält
static boolean alleSpaltenPruefen(int[][] sudoku) {
return true;
}

//prüft, ob ein 3x3 Block innerhalb des Arrays die Zahlen 1-9 jeweils genau ein mal enthält
//Hinweis: startZeile und startSpalte sollen die Koordinaten des linken oberen Elements der 3x3 Matrix sein.
//Erstellen sie davon ausgehend ein neues Array welches alle Zahlen der 3x3 Matrix enthält und verwenden Sie zahlen1bis9Vorhanden sinnvoll.
static boolean einzelnenBlockPruefen(int[][] sudoku, int startZeile, int startSpalte) {
return true;
}

//prüft, ob alle 3x3 Blöcke jeweils die zahlen 1-9 genau ein mal enthalten
//hierfür sollen Sie die einzelnenBlockPruefen Methode geschickt verwenden
static boolean alleBloeckePruefen(int[][] sudoku) {
return true;
}



public static void main(String[] args) {

int[][] sudoku1 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};

int[][] sudoku2 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2, 1 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 5, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};

int[][] sudoku3 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 2, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 7, 4, 8, 4, 2, 9, 1, 6, 3 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};

int[][] sudoku4 = {
{ 8, 3, 5, 4, 1, 6, 9, 2, 7 },
{ 2, 9, 6, 8, 5, 7, 4, 3, 1 },
{ 4, 1, 7, 2, 9, 3, 6, 5, 8 },
{ 5, 6, 9, 1, 3, 4, 7, 8, 2 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 1, 2, 3, 6, 7, 8, 5, 4, 9 },
{ 6, 5, 2, 7, 8, 1, 3, 9, 4 },
{ 9, 8, 1, 3, 4, 5, 2, 7, 6 },
{ 3, 7, 4, 9, 6, 2, 8, 1, 5 }
};

int[][] sudoku5 = {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 2, 3, 4, 5, 6, 7, 8, 9, 1 },
{ 3, 4, 5, 6, 7, 8, 9, 1, 2 },
{ 4, 5, 6, 7, 8, 9, 1, 2, 3 },
{ 5, 6, 7, 8, 9, 1, 2, 3, 4 },
{ 6, 7, 8, 9, 1, 2, 3, 4, 5 },
{ 7, 8, 9, 1, 2, 3, 4, 5, 6 },
{ 8, 9, 1, 2, 3, 4, 5, 6, 7 },
{ 9, 1, 2, 3, 4, 5, 6, 7, 8 }
};

System.out.println("Teste Sudoku Nummer 1:");
if (!dimensionenPruefen(sudoku1)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku1)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku1)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku1)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}

System.out.println("Teste Sudoku Nummer 2:");
if (!dimensionenPruefen(sudoku2)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku2)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku2)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku2)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}

System.out.println("Teste Sudoku Nummer 3:");
if (!dimensionenPruefen(sudoku3)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku3)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku3)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku3)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}

System.out.println("Teste Sudoku Nummer 4:");
if (!dimensionenPruefen(sudoku4)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku4)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku4)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku4)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}

System.out.println("Teste Sudoku Nummer 5:");
if (!dimensionenPruefen(sudoku5)) {
System.out.println("Fehler in den Dimensionen");
} else if (!alleZeilenPruefen(sudoku5)) {
System.out.println("Fehler in den Zeilen");
} else if (!alleSpaltenPruefen(sudoku5)) {
System.out.println("Fehler in den Spalten");
} else if (!alleBloeckePruefen(sudoku5)) {
System.out.println("Fehler in einem 3x3 Block");
} else {
System.out.println("Sudoku ist korrekt");
}

}

}
 

Viktim

Bekanntes Mitglied
Und hier der Code nochmal formatiert ^^

Java:
public class SudokuChecker {

  // prüfen, ob ein 9x9 Sudoku übergeben wurde
  static boolean dimensionenPruefen(int[][] sudoku) {
    return true;
  }

  // prüfen, ob ein array die Zahlen 1-9 jeweils genau ein mal enthält
  static boolean zahlen1bis9Vorhanden(int[] array) {
    return true;
  }

  // prüft, ob alle zeilen jeweils die zahlen 1-9 genau ein mal enthalten
  // hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
  static boolean alleZeilenPruefen(int[][] sudoku) {
    return true;
  }

  // prüft, ob alle spalten jeweils die zahlen 1-9 genau ein mal enthalten
  // hierfür sollen Sie die zahlen1bis9Vorhanden Methode geschickt verwenden
  // Hinweis: Erstellen Sie ein Array, welches die Zahlen der zu prüfenden Spalte enthält
  static boolean alleSpaltenPruefen(int[][] sudoku) {
    return true;
  }

  // prüft, ob ein 3x3 Block innerhalb des Arrays die Zahlen 1-9 jeweils genau ein mal enthält
  // Hinweis: startZeile und startSpalte sollen die Koordinaten des linken oberen Elements der 3x3
  // Matrix sein.
  // Erstellen sie davon ausgehend ein neues Array welches alle Zahlen der 3x3 Matrix enthält und
  // verwenden Sie zahlen1bis9Vorhanden sinnvoll.
  static boolean einzelnenBlockPruefen(int[][] sudoku, int startZeile, int startSpalte) {
    return true;
  }

  // prüft, ob alle 3x3 Blöcke jeweils die zahlen 1-9 genau ein mal enthalten
  // hierfür sollen Sie die einzelnenBlockPruefen Methode geschickt verwenden
  static boolean alleBloeckePruefen(int[][] sudoku) {
    return true;
  }

  public static void main(String[] args) {

    int[][] sudoku1 = {
        { 8, 3, 5, 4, 1, 6, 9, 2, 7 },
        { 2, 9, 6, 8, 5, 7, 4, 3, 1 },
        { 4, 1, 7, 2, 9, 3, 6, 5, 8 },
        { 5, 6, 9, 1, 3, 4, 7, 8, 2 },
        { 1, 2, 3, 6, 7, 8, 5, 4, 9 },
        { 7, 4, 8, 5, 2, 9, 1, 6, 3 },
        { 6, 5, 2, 7, 8, 1, 3, 9, 4 },
        { 9, 8, 1, 3, 4, 5, 2, 7, 6 },
        { 3, 7, 4, 9, 6, 2, 8, 1, 5 }
    };

    int[][] sudoku2 = {
        { 8, 3, 5, 4, 1, 6, 9, 2, 7 },
        { 2, 9, 6, 8, 5, 7, 4, 3, 1 },
        { 4, 1, 7, 2, 9, 3, 6, 5, 8 },
        { 5, 6, 9, 1, 3, 4, 7, 8, 2, 1 },
        { 1, 2, 3, 6, 7, 8, 5, 4, 9 },
        { 7, 4, 8, 5, 2, 9, 1, 6, 3 },
        { 6, 5, 2, 7, 8, 1, 3, 9, 4 },
        { 9, 8, 1, 3, 4, 5, 2, 7, 6 },
        { 3, 7, 4, 9, 6, 2, 8, 1, 5 }
    };

    int[][] sudoku3 = {
        { 8, 3, 5, 4, 1, 6, 9, 2, 7 },
        { 2, 9, 6, 8, 5, 7, 4, 3, 1 },
        { 4, 1, 7, 2, 9, 3, 6, 5, 8 },
        { 5, 6, 9, 1, 3, 4, 2, 8, 2 },
        { 1, 2, 3, 6, 7, 8, 5, 4, 9 },
        { 7, 4, 8, 4, 2, 9, 1, 6, 3 },
        { 6, 5, 2, 7, 8, 1, 3, 9, 4 },
        { 9, 8, 1, 3, 4, 5, 2, 7, 6 },
        { 3, 7, 4, 9, 6, 2, 8, 1, 5 }
    };

    int[][] sudoku4 = {
        { 8, 3, 5, 4, 1, 6, 9, 2, 7 },
        { 2, 9, 6, 8, 5, 7, 4, 3, 1 },
        { 4, 1, 7, 2, 9, 3, 6, 5, 8 },
        { 5, 6, 9, 1, 3, 4, 7, 8, 2 },
        { 1, 2, 3, 6, 7, 8, 5, 4, 9 },
        { 1, 2, 3, 6, 7, 8, 5, 4, 9 },
        { 6, 5, 2, 7, 8, 1, 3, 9, 4 },
        { 9, 8, 1, 3, 4, 5, 2, 7, 6 },
        { 3, 7, 4, 9, 6, 2, 8, 1, 5 }
    };

    int[][] sudoku5 = {
        { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
        { 2, 3, 4, 5, 6, 7, 8, 9, 1 },
        { 3, 4, 5, 6, 7, 8, 9, 1, 2 },
        { 4, 5, 6, 7, 8, 9, 1, 2, 3 },
        { 5, 6, 7, 8, 9, 1, 2, 3, 4 },
        { 6, 7, 8, 9, 1, 2, 3, 4, 5 },
        { 7, 8, 9, 1, 2, 3, 4, 5, 6 },
        { 8, 9, 1, 2, 3, 4, 5, 6, 7 },
        { 9, 1, 2, 3, 4, 5, 6, 7, 8 }
    };

    System.out.println("Teste Sudoku Nummer 1:");
    if (!dimensionenPruefen(sudoku1)) {
      System.out.println("Fehler in den Dimensionen");
    } else if (!alleZeilenPruefen(sudoku1)) {
      System.out.println("Fehler in den Zeilen");
    } else if (!alleSpaltenPruefen(sudoku1)) {
      System.out.println("Fehler in den Spalten");
    } else if (!alleBloeckePruefen(sudoku1)) {
      System.out.println("Fehler in einem 3x3 Block");
    } else {
      System.out.println("Sudoku ist korrekt");
    }

    System.out.println("Teste Sudoku Nummer 2:");
    if (!dimensionenPruefen(sudoku2)) {
      System.out.println("Fehler in den Dimensionen");
    } else if (!alleZeilenPruefen(sudoku2)) {
      System.out.println("Fehler in den Zeilen");
    } else if (!alleSpaltenPruefen(sudoku2)) {
      System.out.println("Fehler in den Spalten");
    } else if (!alleBloeckePruefen(sudoku2)) {
      System.out.println("Fehler in einem 3x3 Block");
    } else {
      System.out.println("Sudoku ist korrekt");
    }

    System.out.println("Teste Sudoku Nummer 3:");
    if (!dimensionenPruefen(sudoku3)) {
      System.out.println("Fehler in den Dimensionen");
    } else if (!alleZeilenPruefen(sudoku3)) {
      System.out.println("Fehler in den Zeilen");
    } else if (!alleSpaltenPruefen(sudoku3)) {
      System.out.println("Fehler in den Spalten");
    } else if (!alleBloeckePruefen(sudoku3)) {
      System.out.println("Fehler in einem 3x3 Block");
    } else {
      System.out.println("Sudoku ist korrekt");
    }

    System.out.println("Teste Sudoku Nummer 4:");
    if (!dimensionenPruefen(sudoku4)) {
      System.out.println("Fehler in den Dimensionen");
    } else if (!alleZeilenPruefen(sudoku4)) {
      System.out.println("Fehler in den Zeilen");
    } else if (!alleSpaltenPruefen(sudoku4)) {
      System.out.println("Fehler in den Spalten");
    } else if (!alleBloeckePruefen(sudoku4)) {
      System.out.println("Fehler in einem 3x3 Block");
    } else {
      System.out.println("Sudoku ist korrekt");
    }

    System.out.println("Teste Sudoku Nummer 5:");
    if (!dimensionenPruefen(sudoku5)) {
      System.out.println("Fehler in den Dimensionen");
    } else if (!alleZeilenPruefen(sudoku5)) {
      System.out.println("Fehler in den Zeilen");
    } else if (!alleSpaltenPruefen(sudoku5)) {
      System.out.println("Fehler in den Spalten");
    } else if (!alleBloeckePruefen(sudoku5)) {
      System.out.println("Fehler in einem 3x3 Block");
    } else {
      System.out.println("Sudoku ist korrekt");
    }

  }

}
 

Viktim

Bekanntes Mitglied
Und jetzt nochmal ne Frage:
Woran scheiterts? :)
Ich mein, das der Code so nicht funktionieren kann ist dir bestimmt auch klar :D

Wenns dir nur um die Methoden geht und wie man die umsetzten kann, hab ich hier schonmal ein Beispiel für dich:
Java:
  // prüfen, ob ein 9x9 Sudoku übergeben wurde
  static boolean dimensionenPruefen(int[][] sudoku) {
    boolean formatStimmt = true;
    if (sudoku.length != 9) {
      formatStimmt = false;
    }
    for (int[] spalte : sudoku) {
      if (spalte.length != 9) {
        formatStimmt = false;
      }
    }
    return formatStimmt;
  }

Dabei guck ich erstmal ob das array 9 stellen hat.
Dann guck ich in der Schleife alle Arrays die da drin sind an, und guck ob die auch alle 9 stellen haben. Und wenn sie das nicht haben dann liefert die Methode halt false zurück....

So ungefähr kannst du die alle machen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
B Sudoku prüfen Java Basics - Anfänger-Themen 13
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
J Sudoku mehrere Lösungen Java Basics - Anfänger-Themen 29
J Sudoku Blocküberprüfung Java Basics - Anfänger-Themen 9
S Sudoku Checker Frage Java Basics - Anfänger-Themen 1
S Methoden Java Sudoku Solver Java Basics - Anfänger-Themen 2
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
A Sudoku mit Backtracking lösen Java Basics - Anfänger-Themen 3
L Sudoku Backtracking Pseudocode Java Basics - Anfänger-Themen 3
L Sudoku Löser Java Basics - Anfänger-Themen 9
V Sudoku-Solver Probleme bei der Fehlerbehandlung Java Basics - Anfänger-Themen 12
H Unterquadrate bei Sudoku füllen Java Basics - Anfänger-Themen 9
D Sudoku lösen mit Backtracking Java Basics - Anfänger-Themen 20
M Sudoku-Löser: Fragen zu Pointer und Rekursion Java Basics - Anfänger-Themen 15
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
X Sudoku Backtracking Java Basics - Anfänger-Themen 6
S Sudoku hilfe Java Basics - Anfänger-Themen 4
M Sudoku Rekursiv lösen Java Basics - Anfänger-Themen 9
N Sudoku/BLocküberprüfung Java Basics - Anfänger-Themen 24
F Sudoku Grid zeichnen Java Basics - Anfänger-Themen 2
C Frage zu Sudoku Java Basics - Anfänger-Themen 20
MEETyA NullPointer Exception - Sudoku Java Basics - Anfänger-Themen 2
J Sudoku-ähnliche Aufgabe Java Basics - Anfänger-Themen 3
G Sudoku rekursiv lösen Java Basics - Anfänger-Themen 10
Antoras Sudoku Java Basics - Anfänger-Themen 3
F sudoku generieren Java Basics - Anfänger-Themen 16
B Sudoku! Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben