Animierte Lösung eines Sudoku-Rätsels
Vor ziemlich genau neun Jahren habe ich ein Applet zum lösen eines Sudoku-Rätsels geschrieben.
Heute werden Applets von den meisten Browserni zumindest per Default nicht mehr unterstützt, und die Surfer müssen den Java-Plugin selber installieren. Wegen den vielen Sicherheitlöchern in den Plugins machen das aber nur wenige User.
Darum habe ich mich zu einem "Upgrade" von Java auf JavaScript entschlossen
Von Java zu JavaScript
Es war gar nicht so einfach, den Code umzuschreiben. Nicht weil Java so viel komfortabler als JavaScript ist, sondern weil der Thread nicht einfach sleep aufrufen kann.
Die Wartezeit wird durch einen Timer realisiert, der den Algorithmus jeweils einen Schritt weiterlaufen lässt. Das bedeutet, dass der aktuelle Zustand in Variablen gehalten werden muss die zwischen den Aufrufen erhalten bleiben. Der Einfachheit halber habe ich dafür globale Variablen genommen.
Aber auch das Backtracking wird komplizierter, weil die vorangehende Position nicht einfach vom Stack genommen werden kann. Der Code muss deshalb herausfinden, wo er weitermachen soll.
Wie Sie hier sehen, ist es schlussendlich doch gelungen, die Aufgabe zu lösen, auch wenn die Lösung nicht vollkommen elegant ist...
|
|
|
|||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||
|
|
|
Wenn Sie am Code interessiert sind, dann können Sie eine HTML-Seite mit dem CSS und JavaScript herunterladen.