Hallo zusammen!
Habe ein Programm für das Lösen von Sudoku geschrieben. Hierin gibt es die Möglichkeit, sich alle Lösungen des Sudokus anzeigen zu lassen. Die Ausgabe erfolgt aber nicht als Matrix, sondern alle Zahlen in einer Reihe (1 2 3 4). Gemäß der Aufgabenstellung soll die Ausgabe sortiert erfolgen. Hier liegt noch mein Problem.
Bisher habe ich in meiner compareTo()-Methode den Vergleich zweier Spielbretter nicht wirklich hinbekommen. Ich habe mir daher die beiden Spielbretter in einen String des obigen Formats umgewandelt und gebe dann in der Methode string1.compareTo(string2) zurück. Für fertig gelöste Spielbretter ist das ja an sich möglich.
Aber der Konsistenz halber sollte die Methode ja auch Spielbretter vergleichen können, die noch nicht fertig gelöst wurden. Unbelegte Felder werden als "." dargestellt (1 . 3 4).
Mein ursprünglicher Ansatz war, die beiden Spielbretter zu durchlaufen (zweidimensionale Arrays), an jeder Stelle die hier gesetzte Zahl bzw. eine Konstante für unbelegte Felder zu ermitteln und diese dann zu vergleichen. "." soll dabei größer als eine gesetzte Zahl sein.
Irgendwie funktioniert das aber nicht. Kann mir vielleicht jemand sagen, ob ich da einen Denkfehler habe? Geht das evtl. auch anders/schöner, als mit dem Durchlauf?
Danke schonmal!
Habe ein Programm für das Lösen von Sudoku geschrieben. Hierin gibt es die Möglichkeit, sich alle Lösungen des Sudokus anzeigen zu lassen. Die Ausgabe erfolgt aber nicht als Matrix, sondern alle Zahlen in einer Reihe (1 2 3 4). Gemäß der Aufgabenstellung soll die Ausgabe sortiert erfolgen. Hier liegt noch mein Problem.
Bisher habe ich in meiner compareTo()-Methode den Vergleich zweier Spielbretter nicht wirklich hinbekommen. Ich habe mir daher die beiden Spielbretter in einen String des obigen Formats umgewandelt und gebe dann in der Methode string1.compareTo(string2) zurück. Für fertig gelöste Spielbretter ist das ja an sich möglich.
Aber der Konsistenz halber sollte die Methode ja auch Spielbretter vergleichen können, die noch nicht fertig gelöst wurden. Unbelegte Felder werden als "." dargestellt (1 . 3 4).
Mein ursprünglicher Ansatz war, die beiden Spielbretter zu durchlaufen (zweidimensionale Arrays), an jeder Stelle die hier gesetzte Zahl bzw. eine Konstante für unbelegte Felder zu ermitteln und diese dann zu vergleichen. "." soll dabei größer als eine gesetzte Zahl sein.
Irgendwie funktioniert das aber nicht. Kann mir vielleicht jemand sagen, ob ich da einen Denkfehler habe? Geht das evtl. auch anders/schöner, als mit dem Durchlauf?
Danke schonmal!