Deine Oma hat vor Kurzem großes Interesse daran entwickelt, Binärrätsel zu lösen. Sie wird zwar immer besser darin, kommt aber trotzdem ziemlich regelmäßig nicht weiter. Weil du ein hilfsbereites Enkelkind bist, beschließt du, eine kleine Anwendung zu bauen, die jedes Binärrätsel lösen kann. Damit kannst du deiner Oma Hinweise für ihren nächsten Zug geben.
Deine Aufgabe ist es, ein Binärpuzzle zu lösen. Jedes Binärpuzzle hat genau eine Lösung, die du findest, indem du diese Regeln anwendest:
Du bekommst ein unvollständiges Puzzle als Zeilen aus Nullen und Einsen übergeben, mit Platzhaltern (_) für die unbekannten Werte.
Das Ziel ist, die Regeln für das Binärpuzzle zu definieren, damit die Tests die Werte für die Platzhalter ermitteln können (das machst du nicht selbst).
Deine Implementierung muss Prologs Constraint-Logik-Programmierung über endliche Domänen (CLP(FD)) verwenden, die sich perfekt für diese Art von Aufgaben eignet.
Damit du loslegen kannst, enthält die Stub-Datei bereits die clpfd-Bibliothek über:
:- use_module(library(clpfd)).
Melde dich bei Exercism an, um Prolog mit 109 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.