आपकी दादी को हाल ही में बाइनरी पहेलियाँ हल करने में गहरी रुचि लगने लगी है। हालाँकि वह इसमें बेहतर होती जा रही हैं, फिर भी वह अक्सर अटक जाती हैं। आप एक मददगार पोता या पोती हैं ही, इसलिए आप एक छोटा एप्लिकेशन बनाने का फैसला करते हैं जो कोई भी बाइनरी पहेली हल कर सके। इससे आप अपनी दादी को उनकी अगली चाल के लिए संकेत दे सकेंगे।
आपको एक बाइनरी पज़ल हल करना है। हर बाइनरी पज़ल का ठीक एक ही हल होता है, और उसे इन नियमों को लागू करके निकाला जा सकता है:
आपको हल करने के लिए एक अधूरा पज़ल मिलेगा, जिसमें शून्य और एक की पंक्तियाँ होंगी और जिन वैल्यू का पता नहीं है उनके लिए प्लेसहोल्डर (_) होंगे।
आपको बाइनरी पज़ल के नियम बनाने हैं, ताकि टेस्ट प्लेसहोल्डर की वैल्यू खुद निकाल सकें (यह काम आपको खुद नहीं करना है)।
आपके इम्प्लीमेंटेशन में Prolog की फिनाइट डोमेन पर कंस्ट्रेंट लॉजिक प्रोग्रामिंग (CLP(FD)) का उपयोग करना ज़रूरी है, जो इस तरह के कामों के लिए बिल्कुल सही है।
शुरू करने में आपकी मदद के लिए, स्टब फाइल में पहले से ही clpfd लाइब्रेरी शामिल है, इस तरह:
:- use_module(library(clpfd)).
Exercism पर साइन अप कीजिए और Prolog को 109 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।