আপনার প্রিয় বন্ধু জিগস পাজল সংগ্রহ করা শুরু করেছেন এবং তাঁর সংগ্রহটির একটি বিস্তারিত ক্যাটালগ তৈরি করতে চান, যেখানে মোট টুকরার সংখ্যা, সারি ও কলামের সংখ্যা, প্রান্তের ও ভেতরের টুকরার সংখ্যা, আসপেক্ট রেশিও এবং পাজল ফরম্যাটের মতো তথ্য লিপিবদ্ধ থাকবে। আপনাদের শক্তি একত্র করেও এক হাজার টুকরার একটি জিগস পাজল সমাধান করতে কয়েক ঘণ্টা লেগে যায়, আর তারপরও সারি ও কলাম গুনে বাকি সংখ্যাগুলো হাতে হাতে হিসাব করতে হয়। হাজার হাজার টুকরার আরও বড় পাজলগুলো এখন বেশ দুঃসাধ্য মনে হয়। "এর চেয়ে ভালো কোনো উপায় থাকতেই হবে!" আপনি বলে ওঠেন এবং সমস্যাটি সমাধান করতে কম্পিউটারের সামনে বসে পড়েন।
একটি জিগস পাজল সম্পর্কে আংশিক তথ্য দেওয়া থাকলে, অনুপস্থিত টুকরাগুলো যোগ করুন।
তথ্যটি বিস্তারিত সম্পূর্ণ করার জন্য যথেষ্ট না হলে, অথবা দেওয়া অংশগুলো পরস্পরবিরোধী হলে, ব্যবহারকারীকে জানানো উচিত।
জিগস পাজল সম্পর্কে সম্পূর্ণ তথ্যে নিচের অংশগুলো থাকে:
pieces: মোট টুকরার সংখ্যাborder: বর্ডার টুকরার সংখ্যাinside: ভেতরের (বর্ডার নয় এমন) টুকরার সংখ্যাrows: সারির সংখ্যাcolumns: কলামের সংখ্যাaspectRatio: সারির তুলনায় কলামের অ্যাসপেক্ট রেশিওformat: পাজলের ফরম্যাট, যা portrait, square, বা landscape হতে পারেএই অনুশীলনীর জন্য আপনি ধরে নিতে পারেন যে টুকরাগুলো বর্গাকার, ফলে ফরম্যাটটি অ্যাসপেক্ট রেশিও থেকে বের করা যায়:
portrait.square.landscape.৬টি টুকরার একটি portrait জিগস পাজল, যার সবগুলোই বর্ডার টুকরা এবং একটিও ভেতরের টুকরা নয়। এর ২টি কলাম ও ৩টি সারি আছে। অ্যাসপেক্ট রেশিও 0.666666... (2/3)।
৯টি টুকরার একটি square জিগস পাজল, যার কেন্দ্রের টুকরাটি ছাড়া বাকি সবগুলোই বর্ডার টুকরা, আর ওই কেন্দ্রের টুকরাটি ভেতরের টুকরা। এর ৩টি কলাম ও ৩টি সারি আছে। অ্যাসপেক্ট রেশিও 1.0 (3/3)।
১২টি টুকরার একটি landscape জিগস পাজল, যার ১০টি বর্ডার টুকরা এবং ২টি ভেতরের টুকরা। এর ৪টি কলাম ও ৩টি সারি আছে। অ্যাসপেক্ট রেশিও 1.333333... (4/3)।
প্রদত্ত তথ্য যদি একটি নির্দিষ্ট ধাঁধা নির্ণয় করার জন্য যথেষ্ট না হয়, তাহলে "Insufficient data" বার্তা দিয়ে একটি এরর সংকেত দিন।
প্রদত্ত তথ্য যদি পরস্পরবিরোধী হয়, তাহলে "Contradictory data" বার্তা দিয়ে একটি এরর সংকেত দিন।
Exercism-এ সাইন আপ করুন, Emacs Lisp ট্র্যাকের 103টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।