Mein Logo

Logik-Puzzle

Was ist das?

21.08.2007

Das Logik-Puzzle ist ein Aufgabe, die in den Rätselheften von P.M. (P.M.-Kreativ-Trainer, P.M.-Logicals, eine zeitlang P.M.-Logik-Trainer) vorkommen. Eigentlich soll man sie von Hand lösen. Dafür habe ich jedoch bei manchen Aufgaben mehrere Stunden benötigt. Dann habe ich einen alten PC geschenkt bekommen und mir gedacht, versuche es doch mal mit dem Computer, dem müßte man es doch beibringen können. Das wurde schnell aufwendiger als gedacht. Nach einiger Zeit konnte er sehr einfache Aufgaben (Telefon aus KT 1/2003), das dann aber sehr schnell. Das Programm habe ich immer weiterentwickelt, so wurde es immer besser. Irgendwann bin ich dann auf die Idee gekommen, es ins Netz zu stellen. Endlich setzte ich es um.

Der Löser

1zu schwer, man kann zuschauen, wie das Programm an einer "Treppe" abmüht.
2zu schwer, mal wieder was gefunden, wo ich den Löser verbessern kann.
Logik-Trainer 2007 Januar
Eichhörnchen
Februar
Micky Maus
April
Teufel
Mai
Prinzessin
Juni
Lilienblüte
Juli
Motorrad
August
Schuh
Runden -1 15 12 11 17 8 -2
Zeit (min) - 3:44 3:39 2:51 5:58 2:08 -

Das von mir geschriebene Programm zum Lösen vom Logik-Puzzle-Aufgaben steht zur freien Benutzung nach GNU General Public License zur Verfügung. 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. Ein paar "for Application"-Befehle sind in der Prozedur TabellenLoeschen() fast am Ende der Datei, die aber nur der Bequemlichkeit dient. (Sie löscht den Inhalt der Tabelle 2 und 3 und wechselt in die Tabelle 1.) Wirklich benötigt wird nur Worksheets(tabelle).Cells(y, x).Value , der aber häufig. Ansonsten nur Basis, so das auch eine Portierung auf OpenOffice möglich sein sollte.

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 logikpuzzle.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 Logikpuzzle-Löser nutzen zu können.)

Ich habe das Programm in einer Excel-Datei Logik-Puzzle und jede Aufgabe in separaten Datei gespeichert. Die zu lösende Aufgabe wählt man unterm Menüpunkt Fenster aus. 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, wird die Rundenzahl und benötigte Zeit in einem Fenster angezeigt.

Vorbereitung

Um ein Logik-Puzzle mit dem Programm zu lösen, muß man es in Excel eingeben. In Tabelle1 kommt die Aufgabe, Tabelle2 und Tabelle3 dienen fürs Zeilen- bzw. Spaltenlösen. Als erstes Formatiert man die Zellen in etwa quadratisch. (Ich setze die Spaltenbreite auf 2,57 - nicht ganz quadratisch, aber so passen zweistellige Zahlen hinein - bei unveränderter Zeilenhöhe.) Die Zahlen kommen rechts bzw. unter die Lösungsfläche, wie hier im Minibeispiel dargestellt.

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 W X Y
1 2 2 1 2 2
2 1 3 1
3 5
4 7
5 9
6 11
7 13
8 15
9 17
10 19
11 1 1 1 1 1 6 7 8 9 10 9 8 7 6 5 1 1 1 1 1
12 1 2 3 4 5 4 3 2 1

In die Zelle A1 Tabelle1 gehört die Formel: =Tabelle2!A1+Tabelle3!A1. Für den ganze Lösungsfläche - im Beispiel also von der Zelle A1 bis T10 - muß eine entsprechende Formel vorhanden sein. Dies erreicht man am einfachsten durch Ziehen. Zuerst zieht man die Formel der Zelle A1 mit dem Maus-Kreuz nach unten - im Beispiel bis zur Zeile 10- läßt einmal kurz los und zieht dann mit dem Maus-Kreuz nach rechts - im Beispiel bis zur Spalte T. In der Zelle T10 sollte dann die Formel =Tabelle2!T10+Tabelle3!T10 stehen.

Jetzt muß man Excel dazu bringen, die Zellen entsprechend darzustellen. Dazu markiert man die Lösungsfläche in Tabelle1 (im Beispiel A1 bis T10) und benutzt man die Bedingte Formatierung. In die 1. Bedingung kommt "Zellwert ist" "gleich" "0" und unter Format... wählt man weise Schrift für Kästchen, die noch unbestimmt sind. Die 2. Bedingung ist für sicher ausgefüllte Kästchen: Zellwert ist größer als 0 und unter Format... bei Muster die Schwarze Farbe wählen. Für sicher leere Kästchen ist die 3. Bedingung zuständig mit Zelllwert ist kleiner als 0 und z.B. unter Format... beim Reiter Muster unten Muster eins der Muster (und eventuell eine Farbe dazu) wählen. (Ich benutze 6,25% grau.) Wer möchte, kann auch noch in Tabelle2 und Tabelle3 bedingte Formatierung vornehmen, um besser zu sehen, die das Programm arbeitet.