مادربزرگتان اخیراً علاقهی زیادی به حل پازلهای دودویی پیدا کرده است. هرچند در این کار بهتر و بهتر میشود، اما بهطور مرتب گیر میکند. چون نوهی دلسوزی هستید، تصمیم میگیرید برنامهی کوچکی بسازید که بتواند هر پازل دودویی را حل کند. اینطور میتوانید برای حرکت بعدی به مادربزرگتان راهنمایی بدهید.
وظیفهی شما حل یک پازل دودویی است. هر پازل دودویی دقیقاً یک جواب دارد که با اعمال این قواعد پیدا میشود:
پازلی ناتمام بهشکل سطرهایی از صفر و یک به شما داده میشود، همراه با جانگهدارها (_) برای مقادیر نامعلوم.
هدف این است که قواعد پازل دودویی را تعریف کنید تا تستها بتوانند مقادیر جانگهدارها را پیدا کنند (این کار را خودتان انجام نمیدهید).
پیادهسازی شما باید از برنامهنویسی منطقی با محدودیت روی دامنههای متناهی (CLP(FD)) زبان Prolog استفاده کند، که برای این نوع کارها ایدهآل است.
برای اینکه کار را راحتتر شروع کنید، فایل اولیه از قبل کتابخانهی clpfd را از این طریق در خود دارد:
:- use_module(library(clpfd)).