মাইনসুইপার একটি জনপ্রিয় গেম, যেখানে ব্যবহারকারীকে সংখ্যাসূচক ইঙ্গিতের সাহায্যে মাইনগুলো খুঁজে বের করতে হয়। এই ইঙ্গিতগুলো জানায়, একটি ঘরের ঠিক পাশে (আনুভূমিক, উল্লম্ব বা কর্ণ বরাবর) কতটি মাইন আছে।
আপনার কাজ হলো একটি সম্পূর্ণ মাইনসুইপার বোর্ডের খালি ঘরগুলোতে মাইনের সংখ্যা যোগ করা। বোর্ডটি একটি আয়তক্ষেত্র, যা এমন ঘর দিয়ে গঠিত যেগুলো হয় খালি (' '), নয়তো মাইন ('*')।
প্রতিটি খালি ঘরের জন্য তার সংলগ্ন মাইনের সংখ্যা গণনা করুন (অনুভূমিক, উলম্ব ও তির্যকভাবে)। খালি ঘরটির আশেপাশে কোনো মাইন না থাকলে সেটি খালি রাখুন। নাহলে সেটিকে সংলগ্ন মাইনের সংখ্যা দিয়ে বদলে দিন।
উদাহরণস্বরূপ, আপনি এমন একটি 5 x 4 বোর্ড পেতে পারেন (স্ক্রিনে দেখানোর জন্য এখানে খালি জায়গাগুলো '·' অক্ষর দিয়ে দেখানো হয়েছে):
·*·*·
··*··
··*··
·····
এবং আপনার কোড এটিকে এভাবে রূপান্তর করবে:
1*3*1
13*31
·2*2·
·111·
মাইনফিল্ডকে একটি স্ট্রিং হিসেবে উপস্থাপন করা হয়, যেখানে প্রতিটি সারির শেষে একটি নিউলাইন ক্যারেক্টার থাকে।
একটি উদাহরণ হতে পারে " \n * \n \n"
ইনপুট স্ট্রিংয়ের বাফারটি লিনিয়ার মেমরির ৬৪-৩১৯ বাইট ব্যবহার করে।
চাইলে ইনপুট স্ট্রিংটি একই জায়গায় পরিবর্তন করা যেতে পারে।
Exercism-এ সাইন আপ করুন, WebAssembly ট্র্যাকের 87টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
আমরা দেখব নেস্টেড for লুপ, বাউন্ড চেকিং সহজ করতে min/max-এর চতুর ব্যবহার, ফাংশনাল পাইপলাইন আর দ্বিমাত্রিক ম্যাট্রিক্সের ব্যবহার।