Zitat von
Delphi-Narr:
Wenn man nicht mehr als bis zu 40 Felder löscht, sollte sich kein Problem ergeben.
Ganz im Gegenteil. Als Beispiel ein 2x2-Sudoku:
Dieses hat bereits 2 verschiedene Lösungen, obwohl fast alle Zahlen eingetragen sind. Natürlich machts für die Lösbarkeit keinen Unterschied (allerhöchstens für die Schwierigkeit), aber zumindest nach eigenem Empfinden ist die Uneindeutigkeit eines Logikpuzzles definitiv spielspaßraubend. Insb. wenn du dann (bisher) nur eine Lösung als richtig anrechnest ist eine solche Situation mindestens suboptimal
Einen effizienten Algorithmus, eindeutige Sudokus zu generieren gibts AFAIK (noch) nicht. Die Holzhammermethode wäre natürlich, alle möglichen Lösungen zu berechnen. Ein anderer Weg wäre, das Sudoku auf Aussagenlogik zurückzuführen und es mit einem Implikationsgraphen zu probieren. Die letzte Möglichkeit die mir einfällt wäre eine Annäherung, d.h. zumindest bestimmte Fälle von mehrfachen Lösungen zu vermeiden. Situationen wie oben im 2x2-Sudoku kann man relativ leicht feststellen und durch hinzufügen einer Zahl lösen. Eine Garantie, dass das Sudoku damit eine eindeutige Lösung hat, ist das definitiv nicht; Aber die für den Spieler (IMO) nervigen Situationen kann man damit eliminieren. (Wenn das Puzzle zwar mehrere Lösungen hat, aber mit einer frühen Entscheidung des Spielers nur eine Lösung möglich ist, merkt der Spieler meist gar nicht, dass es noch andere gäbe).
greetz
Mike