اهتمت جدتك مؤخرًا بحل الألغاز الثنائية اهتمامًا كبيرًا. ومع أنها تتحسّن في ذلك، فإنها تعلق بانتظام. وبما أنك الحفيد المساعد، تقرر بناء تطبيق صغير قادر على حل أي لغز ثنائي. سيتيح لك هذا أن تقدم لجدتك تلميحات لخطوتها التالية.
مهمتك هي حل أحجية ثنائية. كل أحجية ثنائية لها حل واحد فقط، يمكن إيجاده بتطبيق هذه القواعد:
ستُمرَّر إليك أحجية غير مكتملة على شكل صفوف من الأصفار والآحاد، مع عناصر نائبة (_) للقيم المجهولة.
الهدف هو تعريف القواعد الخاصة بالأحجية الثنائية، ما سيسمح للاختبارات بمعرفة قيم العناصر النائبة (أنت لا تفعل ذلك بنفسك).
يجب أن يستخدم تنفيذك البرمجة المنطقية بالقيدود على النطاقات المنتهية (CLP(FD)) الخاصة بلغة Prolog، وهي مثالية لهذا النوع من المهام.
لمساعدتك على البدء، يتضمن ملف البداية بالفعل مكتبة clpfd عبر:
:- use_module(library(clpfd)).
سجّل في Exercism لتتعلّم وتتقن Prolog عبر 109 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.