Eines der populärsten Legespiele ist Knifflidiffels von Diddl. Dabei müssen jeweils gleiche Bilder aneinandergelegt werden. Die Spiel-Varianten mit der niedlichen Maus sind nicht nur besonders einsteigerfreundlich, sie bringen auch einen interessanten neuen Aspekt ins Spiel: Doppelte Karten
Bei Knifflidiffels handelt es sich um ein weiteres Legespiel, wie es bereits im Artikel Backtracking im Kinderzimmer beschrieben wurde. Es gibt anscheinend 5 verschiedene Varianten dieses Spiels. Hier soll die fünfte Variante (siehe auch Liste von Legespielen und ihre Lösungen) behandelt werden.
Das Spiel besteht insgesamt aus 9 Karten (siehe Abb. 1). Allerdings sind die Bilder, die aneinandergelegt werden sollen diesmal gleich (d.h. nicht Bilder von Ober- und Unterkörper, wie z.B. bei Pippi Langstrumpf Absolut knifflig!, sondern gleiche Bilder auf beiden Seiten). Es fällt außerdem auf, dass einige Karten gleich sind, und zwar: die ersten drei Karten (oberste Reihe), die Karten 4-6 (zweite Reihe) und die Karten 8 und 9 (zweite und dritte Karte in der dritten Reihe). Lediglich die Karte 7 (erste Karte in der dritten Reihe) hat keinen Doppelgänger. Abbildung 2 zeigt die 4 unterschiedlichen Karten des Spiels.
Bemerkung am Rande: Möchte ein Hersteller auf jeder Karte alle 4 Figuren (d.h. das Pferd, die beiden Mäuse und den kleinen Hund) drucken, wie das hier auch der Fall ist, dann wären ohnehin nur insgesamt 6 (= 4! : 4) verschiedene Karten möglich, die auch nach beliebigen Drehungen (jeweils 4 Drehungen in 90°-Schritten möglich) noch alle unterschiedlich sind. In unserem konkreten Fall wären daher noch zwei weitere Karten möglich: Diddlina (rosa Kleid) ist auf diesen Karten oben und das Pferd unten.
Gleich oder nicht gleich
… das ist hier die Frage, wenn es um die Lösungen für Knifflidiffels geht. Aus jeder einzelnen Lösung kann man nämlich bei Knifflidiffels 72 (= 3! · 3! · 2!) Lösungen konstruieren, indem man einfach gleiche Karten miteinander vertauscht. Da diese Lösungen aber alle gleich aussehen, sollen sie hier auch als gleich betrachtet werden. Dasselbe gilt für Lösungen, die durch Rotation des ganzen Spielfelds entstehen (siehe auch Abschnitt Die Lösungen im Artikel Backtracking im Kinderzimmer ). Unter diesen Vorraussetzungen ergeben sich die folgenden 26, echt unterschiedliche, Lösungen:
Würde man alle Lösungen berücksichtigen, die durch das Vertauschen gleicher Karten entstehen, dann hätte man 1.872 Lösungen (Faktor 72). Wenn man zusätzlich noch die Lösungen berücksichtigen würde, die durch Drehung des gesamten Spielfelds entstehen, dann käme man insgesamt auf 7.488 (nochmals Faktor 4) Lösungen. Versucht ein Spieler irgendeine Lösung zu finden, hat er bei Knifflidiffels normalerweise deutlich schneller Erfolg als bei Absolut Knifflig!, da es bei letzterem nur insgesamt 148 Lösungen gibt und damit etwa 50 Mal weniger als bei Knifflidiffels.
Der Legespiel-Solver und doppelte Karten
Das Java-Programm Legespiel-Solver ist freie Software und unter der freizügigen MIT-Lizenz veröffentlicht. Das komplette Eclipse-Projekt kann bei Github heruntergeladen werden. Für die Anzeige aller Lösungen mit Originalbildern im generierten HTML werden die neun Bilder der Karten benötigt (siehe erste Abbildung in diesem Post) . Diese sind nicht Teil des Software-Pakets, da es sich hierbei um urheberrechtlich geschütztes Material handelt.
Ich hab‘ die Karten nicht
Ich habe mich an dieser Stelle auf eine einzige Variante von Knifflidiffels beschränkt, da mir nicht alle Bilder der anderen Varianten zur Verfügung stehen. Erschwerend kommt hinzu, dass seit 2014 die Firma Depesche den Vertrieb der Spiele aufgegeben hat und meine Kinder sich die wenigen Karten, die ich hatte, schon wieder unter den Nagel gerissen haben. Wenn also noch jemand Knifflidiffels-Karten oder Karten zu anderen Legespielen hat – immer her damit. UPDATE: Über verschiedene Kanäle habe ich die komplette Information zu den Karten für alle 5 Versionen von Knifflidiffels erhalten (siehe Liste von Legespielen und ihre Lösungen). Danke!
Hallo!
Der Legespiel-Solver ist eine coole Sache.
Wie schwierig ist es, zu implementieren, dass einer Karte eine feste Position zugewiesen wird, bzw. und oder eine bestimmte Ausrichtung?
Beste Grüße!!
Einschränkungen bei der Suche nach Lösungen wären wahrscheinlich mit überschaubarem Aufwand umsetzbar. Man müsste bei der Suche (Methode findAllSolutions) im verwendeten Spielfeld (Field-Object) eigentlich nur am Anfang schon bestimmte Karten an die gewünschte(n) Position(en) hinlegen und drehen. Die Methode Field.addedIfFits müsste man noch anpassen, da man beim Hinzufügen von neuen Karten bisher nur nach oben (North) und nach links (West) schauen muss, um herauszufinden, ob die Karte passt. Die Suche sollte mit Einschränkungen sogar noch schneller abgeschlossen sein als ohne.
Noch einfacher wäre wahrscheinlich ein Lösungsfilter. Beim Legespiel-Solver-Online ( https://whatsoftwarecando.org/de/legespiele-online-losen/ ) könnte man, nachdem alle Lösungen gefunden sind, einen einfachen Filter umsetzen, wo man Bedingungen definieren kann (z.B. als Text „4p6“ für vierte Karte an Position 6 oder „3r90“ für dritte Karte um 90° gedreht). Beim Filtern der Lösungen müsste man dann nur jede der gefundenen Lösungen bei 0°, 90°, 180° und 270° betrachten und jeweils nachschauen, ob alle definierten Bedingungen zutreffen. Nur die Ausrichtung (ohne Position) einer Karte anzugeben, ist übrigens keine wirkliche Einschränkung, da man ja einfach nur die jeweilige Lösung so drehen muss, bis die Karte die gewünschte Ausrichtung hat.
Gibt es für dieses neue Feature einen bestimmten Anwendungsfall?
Mit der der neuen Version v1.7.1 des Legespiel-Solvers Online ist es nun möglich die Liste von Lösungen zu filtern:
Leer bedeutet, dass gleich aussehende Lösungen ausgefiltert werden und die verbleibenden Lösungen so gedreht werden, dass sie möglichst gut zu lesen sind. Verwende z.B. „1p1 1r90 5p3“, wenn die erste Karte an erster Position und um 90° gedreht sein soll und gleichzeitig die fünfte Karte an dritter Position sein soll. Mit „!“ können Bedingungen verneint werden (z.B. „!6r0 !5p1“).
Viel Spaß damit!