HARRY FELDMANN
Title and Abstract
Sudoku Solution by Elimination
Sudoku Lösung durch Eliminieren
Das folgende Applet löst Sudokus durch automatisches Eliminieren unzulässiger Ziffern. Am Anfang steht an jeder Stelle ein
3x3-Feld aller möglichen Ziffern 1..9. Klickt man auf die dort
im Sudoku-Rätsel vorgegebene Ziffer,
,---,---,---, ,---,---,---,
! 1 ! 2 ! 3 ! ! ! ! !
!---+---+---! !---+---+---!
z.B. klick auf '6' ! 4 ! 5 ! 6 ! ergibt ! ! ! 6 ! ,
!---+---+---! !---+---+---!
! 7 ! 8 ! 9 ! ! ! ! !
'---'---'---' '---'---'---'
so werden die übrigen Ziffern 1,2,3,4,5,7,8,9 eliminiert. Darüber
hinaus werden automatisch alle anderen Ziffern '6' in diesem
Block, dieser Zeile und dieser Spalte eliminiert.
Außerdem wird automatisch 'geklickt' bzw. 'eliminiert',

wenn in einem 3x3-Feld nur eine Ziffer (klick) übrig ist
oder

wenn in einem Block, einer Zeile oder einer Spalte
eine Ziffer (klick) nur einmal vorkommt oder

wenn in einem Block, einer Zeile oder einer Spalte
n gleiche n-Ziffern-Felder vorkommen und dort andere
Ziffern (eliminier) einer der n Ziffern gleichen (n=2,..,7),
d.h. es wird sukzessiv eliminiert.
Apl_0 (Quelltext: www.harry-feldmann.net/Sudoku/source/Apl_0.java.html, ... /Apl_0.html.html)
Apl_0: Sudoku, Lösung durch Eliminieren
,---,
Klick schaltet einen Schritt zurück,
! < ! Backup (oben links)
z.B. nach falscher Ziffern-Eingabe
'---'
oder für Rückzug aus Sackgasse.
,---,
Schnelles Gesamtschrittverfahren
! ? ! Help (unten rechts)
ohne blinkende Ziffern-Anzeige.
'---'
Klick schaltet um auf Flash.
,---,
Langsames Einzelchrittverfahren
! O ! Flash (unten rechts)
mit O-blinkender Ziffern-Anzeige.
'---'
Klick schaltet zurück auf Help.
Bei Sudokus von niedrigem Schwierigkeitsgrad führt bereits das
Eliminieren zur Lösung.
Bei Sudokos von hohem Schwierigkeitsgrad könnten nach dem
Eliminieren einige 3x3-Felder mit mehreren Ziffern übrig bleiben.
Zu einer Lösung wären nur wenige Ziffern-klick Versuche erforderlich, mit Rückzug aus Sackgassen durch klick auf Backup, d.h.
'backtracking' per Hand. Es lohnt sich nicht, deswegen an das
automatische Eliminieren noch automatisches Backtracking anzuschließen.
Es könnte mehrere Lösungen geben.