Beschreibung

  1. Aufgabe des Applet
  2. Oberfläche des Applet
  3. Installationshinweise
  4. Sonstiges (Backtracking)

Aufgabe des Applet

Aufgabe des Applets ist das Lösen des Springer-Problems. Hierbei soll ein Springer, der jeweils ziehen kann, wie ein normaler Schachspringer, jedes Feld nur einmal besuchen.

Um alle Lösungen für dieses Problem zu finden, wird die Backtracking-Strategie angewandt. Das kleinste mögliche Schachbrett, auf dem erste Lösungen vorhanden sind, ist 5x5 Felder groß.

Oberfläche des Applet

Ausgabebereich

Der Ausgabebereich kann jeweils 2 unterschiedliche Anzeigen darstellen:

  1. während der Berechnung der Lösungen werden Zwischenstände der möglichen Lösungswege angezeigt. Diese Anzeige läuft in einem eigenen Thread, damit die Berehnung schneller erfolgen kann. Deshalb werden nicht alle Zustände angezeigt, sondern immer nur "Schnappschüsse".
  2. Nach der Berechnung können die Ergebnisse aus dem Ergebnisfeld am unteren Rand des Applets angezeigt werden. Soweit es das angewählte Board-Theme unterstützt, kann die Lösung auch animiert werden.

Durch Klicken auf Felder des Bretts kann das Startfeld festgelegt werden, von dem aus die Lösungen gesucht werden sollen.


Einstellungen

Im Einstellungsbereich kann mit dem Slider die Größe des Bretts festgelegt werden. Es können Feldgrößen von 5x5 bis 16x16 ausgewählt werden. Unter dem PopUp-Menü "Theme" kann das Aussehen des Ausgabebereichs gewählt werden.


Fortschrittsanzeige

Unter "Search Deepth" wird während der Berechnung der Lösungen angezeigt, wie weit die Berechnung schon zu einer Lösung vorgedrungen ist. Stößt der Fortschrittsbalken am rechten Rand an, so wurde eine Lösung gefunden, das in die Ergebnisliste eingetragen wird.

Der Fortschrittsbalken "Search Progress" zeigt an, wieviele der möglichen Lösungswege bereits getestet wurden.


Ablaufsteuerung

Hier befindet sich ein "Start"-Button, mit dem die Berechnung gestartet wird. Wie bereits weiter oben erwähnt, erfolgt die Berechnung in einem eigenen Thread, um möglichst schnell Ergebnisse zu finden und nicht sowieso spärlich vorhandene Rechenzeit unnötig mit dem Zeichnen jedes einzelnen Schritte der Berechnung zu verschwenden.

Nach dem Klick auf den "Start"-Button wird dessen Beschriftung geändert und daraus ein "Stop"-Button, mit dem die Berechnung abgebrochen werden kann.

Soweit das Board die Animation von Ergebnissen unterstützt, befinden sich weitere Bedienelemente im Kontrollbereich:

Durch Klicken auf die Checkbox "Animation Panel" wird ene Springer-Figur in das Board eingeblendet, die auf dem ersten Feld der gewählten Lösung steht.

Durch Klicken auf die Pfeil-Tasten kann der Springer je einen Schritt vorwärts bzw. rückwärts bewegt werden. Durch Auswählen der Checkbox "Autostepping" und anschließendes Klicken auf die Vorwärts- bzw. Rückwärts-Buttons wird der Springer von Feld zu Feld bewegt.

Mit dem Slider "Speed" kann dabei die Geschwindigkeit der Animation beeinflußt werden.


Ergebnisanzeige

In der Liste werden die Ergebnisse der Berechnung angezeigt. Durch Klicken auf eine Ergebnis-Zeile im Listfeld wird dieses im Ausgabebereich angezeigt. Dabei wird eine Notation verwendet, die der beim normalen Schach gebräuchlichen entspricht. Die Spalten werden mit Buchstaben, die Zeilen mit Zahlen bezeichnet. Das Feld links oben wird hier als A1 bezeichnet.

Die Ergebnisliste wird nur gelöscht, wenn ein neues Startfeld durch Klicken auf ein Feld im Ausgabebereich oder wenn der "Start"-Button gedrückt wird. Es ist also auch möglich, die Ergebnisse in verschiedenen Boards (animiert oder nicht) zu betrachten.


Installationshinweise

Bei der Entwicklung des Applets wurde auf die modernen Swing-Klassen des JDK 1.2 und neuer zurückgegriffen. Leider unterstützen die verbreitetsten Browser Netscape Navigator und Microsoft Internet Explorer beide nur Java Versionen 1.1.x. Um die Swing-Klassen dennoch in diesen Browsern verwenden zu können, wurden diese in das JAR-File mit aufgenommen. Leider wird dadurch das JAR-File recht groß.

Um die besten Ergebnisse (vor allem in Hinsicht auf die Performance) zu erreichen empfiehlt es sich, das Applet mit dem appletviewer aufzurufen.

Sonstiges (Backtracking)

Beim Backtracking wird nach der "Trial-And-Error-Methode" jeder mögliche Lösungsweg getestet. Das heißt, es wird solange probiert, bis kein weiterer Schritt mehr möglich ist. Dann wird überprüft, ob dies eine Lösung ist. Wenn ja, wird diese Lösung ausgegeben. Ansonsten wird einen Schritt zurückgegangen, der gerade gegangene Weg markiert und der nächste Weg getestet. Dieser Algorithmus ist in diesem Applet implementiert und die Lösungen werden in einer Liste unten ausgegeben.