Tracks
/
Prolog
Prolog
/
Übungen
/
Binärpuzzle
Binärpuzzle

Binärpuzzle

Mittel

Einführung

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.

Anleitung

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:

  1. Jede Zelle muss entweder eine Null oder eine Eins enthalten.
  2. Mehr als zwei gleiche Ziffern dürfen nicht nebeneinander liegen. Wenn also zwei benachbarte Zellen dieselbe Ziffer enthalten, müssen die Zellen neben diesen Ziffern die andere Ziffer enthalten.
  3. Jede Zeile und jede Spalte muss gleich viele Nullen wie Einsen enthalten.
  4. Jede Zeile und jede Spalte muss einzigartig sein.

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.

Note

Damit du loslegen kannst, enthält die Stub-Datei bereits die clpfd-Bibliothek über:

:- use_module(library(clpfd)).
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Prolog Exercism

Bereit, mit Binärpuzzle zu starten?

Melde dich bei Exercism an, um Prolog mit 109 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.