Croco – ein Tool zum Testen von Rätseln

Es gibt einiges, was einem ein Computer beim Entwerfen handerstellter Rätsel abnehmen kann, beispielsweise das Überprüfen ob die Lösung eindeutig ist und das Layouten des Rätsels. Hierfür habe ich mir im Laufe der letzten Jahre ein Tool erstellt, dass ich nun in überarbeiteter Form unter dem Namen croco der Allgemeinheit als freie Software zur Verfügung stellen möchte.

Den croco-Quellcode findet man auf GitHub. Dort kann auch jeder, der mag, mithelfen, die Software zu verbessern. Beispielsweise durch Fehlerberichte und durch aktives Mitarbeiten an der Software.

In der aktuellen Version 0.3 werden Doppelsternrätsel, Hitori, Heyawake, Sternenhimmel und Zeltlager unterstützt.

Beispiel

Wie man croco beispielhaft benutzen kann, um ein Doppelsternrätsel zu erstellen, habe ich auf einer eigenen Seite erklärt.

Änderungen

Hinzugekommen sind neue Rätselarten: Hitori, Heyawake, Zeltlager und Sternenhimmel. Es werden nun die Signale sigint und sigwinch unterstützt. Die Konfigurationsdateien wurden verbessert. Der check Befehl kennt nun noch das --brief argument, mit dem für jedes zu testende Rätsel genau eine Zeile ausgegeben wird. Die Hilfe für import und export wurde verbessert. Und zu guter Letzt wurden Release-Tests und Benchmarks hinzugefügt.

Änderungen in v0.2

Seit der Version 0.1 hat sich, oberflächlich betrachtet, nicht viel geändert. Es werden weiterhin nur Doppelsternrätsel unterstützt und die Funktionalität ist nur um die Import- und Exportfunktion ergänzt worden. Unter der Oberfläche hat sich aber viel getan. Zum einen wurde das Backend von C++ auf D umgestellt und mit zahlreichen Unittests versehen. Die ASCII-Grafik-Bibliothek wurde von ncurses auf S-lang geändert. Auch das Frontend wurde überarbeitet und für Teile davon existieren nun ebenfalls Tests.

Ein weiterer Punkt ist die Verwendung von CMake zur Erstellung von Installationen. Unter anderem können wir damit vollautomatisch einen Tarball und ein Debian-Paket erstellen, die sich bei den meisten Linux-Distributionen leicht installieren lassen sollten. Theoretisch kann man damit die Programme sogar auf anderen Betriebssystemen kompilieren. Das habe ich aber bislang nicht ausprobiert und ich habe auch so meine Zweifel daran, dass das auf Anhieb klappt. (Aber falls es jemand versuchen möchte, würde ich mich über Rückmeldungen sehr freuen.)

Debian-Paket (für 64-Bit-Prozessor)

Mit dem nachfolgenden Paket sollte sich croco unter Debian leicht installieren lassen, einfach mittels sudo dpkg -i croco-0.3-Linux.deb installieren und schon kann man croco in der Komandozeile aufrufen. Mit sudo dpkg -r croco kann man es wieder deinstallieren.

Installations-Tarball (für 64-Bit-Prozessor)

Die Installation des Tarballs ist ähnlich einfach, wie beim Debian-Paket: Mit sudo tar -xzf croco-0.3-Linux.tgz -C /usr/local wird der Tarball installiert. Das Deinstallieren geht aber nicht automatisiert. Dafür funktioniert diese Methode auch auf Linux-Rechnern, die mit Debian-Paketen nicht umgehen können und man kann die Pakete auch lokal installieren (mit tar -xzf croco-0.3-Linux.tgz -C /pfad/zum/lokalen/verzeichnis), wobei man dann den Pfad zum bin-Verzeichnis noch in PATH mit aufnehmen muss (export PATH=/pfad/zum/lokalen/verzeichnis/bin:$PATH).

Ein weiterer Nachteil dieser Methode ist, dass man händisch noch einige weitere Programme installieren muss, unter anderem die D-Bibliothek Phobos, die S-lang-Bibliothek und PHP 7.0.

Quellen

Man kann sich croco auch aus den Quellen selbst kompilieren. Das ist aber noch aufwendiger, als die Installation mit dem Tarball. Dafür kann man es damit möglicherweise sogar schaffen, das Programm auch unter Windows oder OS-X zum Laufen zu bekommen. Und zudem kann man damit auch auf die Entwicklungsversion zugreifen, die möglicherweise bereits neuere Features enthält. Die Anleitung dazu findet man in der README.md-Datei die sich mit im Archiv befindet.

Weitere Dokumentation

Die Beschreibung des Formats der Rätseldateien ist als eigenständige PDF-Datei erhältlich: