Mein Logo

Slither-Link

Was ist das?

21.05.2007

Slither-Link ist eins der japanischen "Sucht"-Rätsel, wobei Sudoku das bekannteste ist. Bei Slither-Link muß genau ein geschlossener Linienzug durch ein Gitternetz - ein Graph aus Knoten und Kanten - gefunden werden. Normalerweise hat man regelmäßige Strukturen wie Bienenwaben oder ein Quadratgitter ("Karopapier"). In einigen (wenigen) Zellen stehen Zahlen, die vorgeben, wieviel direkt angrenzende Linien zum Linienzug gehören. Diese Zahlen und die Bedingung nur eines Linienzuges ist zum Lösen des Rätsels ausreichend, auch wenn es verdammt schwer sein kann ...

Der Löser

Zur Zeit schreibe ich am Programm zum Lösen vom Slither-Link-Aufgaben mit Quadratgitter für Excel. Es steht zur freien Benutzung nach GNU General Public License zur Verfügung. Da ich das Programm z.Z. noch weiterentwickele, gibt es hier hin und wieder eine neue Version, die nicht immer ausgiebig getestet wurde. So kommt es immer wieder vor, daß der Löser eine Aufgabe falsch löst. Ich habe es unter Excel97 (Microsoft) erstellt. Das Programm lief auch unter Excel 2007 Beta, wenn man vor den Öffnen der Programm-Datei mit ALT-F11 den VBA-Editor geöffnet hat. Mit allen Excel-Versionen dazwischen sollte es auch funktionieren. Eine Portierung nach ObenOffice ist wohl ziemlich arbeitsaufwendig, da man die vielen ActiveSheet.Cells(zeile, spalte).Borders(Kante).xxx ändern muß.

Nach dem Runterladen muß man zuerst die Extension von zip in bas ändern. (Die Extension ist auf zip gesetzt, damit der Download klappt.) Dann kann man das Programm in Excel einbinden. Dazu Excel starten - es sollte genau eine neue Excel-Datei geöffnet sein - mit ALT-F11 in den VBA-Editor wechseln, dort Datei/Datei importieren ... anklicken, dann ins Verzeichnis mit der slither-link.bas-Datei wechseln, diese doppelklicken. Zurück nach Excel wechseln und die Arbeitsmappe noch speichern, das war es schon. (Wenn man diese Arbeitsmappe wieder öffnet, weist Excel darauf hin: Die Arbeitsmappe, die Sie öffnen, enthält Makros.. Man muß dann Makros aktivieren anklicken, um den Slither-Link-Löser nutzen zu können.)

Ich habe das Programm in einer Excel-Datei Slither-Link und die Aufgaben in separaten Dateien gespeichert.Die zu lösende Aufgabe als aktives (in der die Schreibmarke steht) Fenster auswähle. Noch ALT-F8 und dort loesen ausführen. Schon versucht das Programm die Aufgabe zu lösen. Dabei kommt es vor, daß das Programm festhängt, d.h. die Aufgabe nicht lösen kann. Die ESC-Taste unterbricht das Programm. 2 Kästchen rechts und unter der Aufgabe wird während des Lösens die Rundenzahl mitgezählt, die das Programm durchlaufen hat. Ist die Aufgabe gelöst, erscheint eine Zeile darunter die Laufzeit, der man eventuelle noch ein vernünftiges Format geben muß.

Vorbereitung

Um ein Slither-Link mit dem Programm zu lösen, gibt man es in eine Tabelle von Excel ein. Dabei läßt man oben eine Zeile und rechts eine Spalte frei (macht das Programm einfacher). Als erstes sollte man die Zellen in etwa quadratisch formatieren, ich setzt dazu die Spaltenbreite auf 2. Dann gibt man ab der Zelle B2 den Slither-Link ein. In den Ecken drum herum (im Beispiel A1, V1, A28 und V28) noch ein kleines x - damit erkennt der Löser die Größe der Aufgabe.

Diese Aufgabe zum Lösen von Hand
A B C D E F G H I J K L M N O P Q R S T U V
1 x x
2 2 1 1 0 0 0 1 2 0
3 1 1 2 0 0 0 1 0 2
4 1 0 0 0 0 1 0 0
5 0 0 0 2 0 0 1 0 1 2
6 0 0 0 1 0 0
7 1 0 0 0 0 1 0 1
8 1 0 0 0 0 0 0 0 1
9 0 0 0 0 0 1 0 0
10 0 0 0 0 0 2 1 0 0 1
11 1 0 0 0 0 1 1 0 2
12 1 0 0 0 0 1 1 0 2
13 0 0 0 0 0 1 1 2 0
14 0 0 0 0 0 1 2 0 0
15 1 0 0 0 0 1 2 0 0
16 1 0 0 0 0 0 1 1 2 1 0
17 0 0 0 0 0 2 1 1 2 0 0
18 0 0 0 0 1 1 0
19 1 0 0 0 0 1 1 1 2 0
20 1 0 0 0 0 0 1 0 1
21 0 0 0 0 0 0 1 1
22 0 0 0 0 0 1 0 0 1
23 1 0 0 2 0 0 0 1 0 2
24 0 0 1 2 0 0 1 0 0 2
25 2 1 0 0 0 1 0 0
26 3 1 1 1 1 1 0 1
27 1 1 2
28 x x