المسارات
/
Prolog
Prolog
/
التمارين
/
اللغز الثنائي
اللغز الثنائي

اللغز الثنائي

متوسط

مقدمة

اهتمت جدتك مؤخرًا بحل الألغاز الثنائية اهتمامًا كبيرًا. ومع أنها تتحسّن في ذلك، فإنها تعلق بانتظام. وبما أنك الحفيد المساعد، تقرر بناء تطبيق صغير قادر على حل أي لغز ثنائي. سيتيح لك هذا أن تقدم لجدتك تلميحات لخطوتها التالية.

التعليمات

مهمتك هي حل أحجية ثنائية. كل أحجية ثنائية لها حل واحد فقط، يمكن إيجاده بتطبيق هذه القواعد:

  1. يجب أن تحتوي كل خلية على صفر أو واحد.
  2. لا يمكن أن يكون أكثر من رقمين متطابقين متجاورين. وبالتالي، إذا احتوت خليتان متجاورتان على الرقم نفسه، فيجب أن تحتوي الخلايا المجاورة لهما على الرقم الآخر.
  3. يجب أن يحتوي كل صف وكل عمود على عدد متساوٍ من الأصفار والآحاد.
  4. يجب أن يكون كل صف وكل عمود فريدًا.

ستُمرَّر إليك أحجية غير مكتملة على شكل صفوف من الأصفار والآحاد، مع عناصر نائبة (_) للقيم المجهولة. الهدف هو تعريف القواعد الخاصة بالأحجية الثنائية، ما سيسمح للاختبارات بمعرفة قيم العناصر النائبة (أنت لا تفعل ذلك بنفسك). يجب أن يستخدم تنفيذك البرمجة المنطقية بالقيدود على النطاقات المنتهية (CLP(FD)) الخاصة بلغة Prolog، وهي مثالية لهذا النوع من المهام.

Note

لمساعدتك على البدء، يتضمن ملف البداية بالفعل مكتبة clpfd عبر:

:- use_module(library(clpfd)).
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Prolog Exercism

مستعد لبدء اللغز الثنائي؟

سجّل في Exercism لتتعلّم وتتقن Prolog عبر 109 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.