كانسة الألغام لعبة شائعة يبحث فيها اللاعب عن الألغام بمساعدة تلميحات رقمية تشير إلى عدد الألغام المجاورة للمربع مباشرةً (أفقيًا، وعموديًا، وقطريًا).
مهمتك هي إضافة أعداد الألغام إلى المربعات الفارغة في لوحة كانسة الألغام مكتملة.
اللوحة نفسها مستطيل مكوّن من مربعات، وكل مربع إما فارغ (' ') وإما لغم ('*').
لكل مربع فارغ، احسب عدد الألغام المجاورة له (أفقيًا، وعموديًا، وقطريًا). إذا لم يكن للمربع الفارغ أي ألغام مجاورة، فاتركه فارغًا. وإلا فاستبدله بعدد الألغام المجاورة له.
على سبيل المثال، قد تستلم لوحة بأبعاد 5 × 4 مثل هذه (المسافات الفارغة ممثلة هنا بالرمز '·' لعرضها على الشاشة):
·*·*·
··*··
··*··
·····
والتي ينبغي أن يحوّلها الكود إلى هذه:
1*3*1
13*31
·2*2·
·111·
يُمثَّل حقل الألغام كسلسلة نصية، مع محرف سطر جديد في نهاية كل صف.
على سبيل المثال: " \n * \n \n"
يستخدم المخزن المؤقت لسلسلة الإدخال البايتات 64-319 من الذاكرة الخطية.
يمكن تعديل سلسلة الإدخال في مكانها إذا أردت ذلك.
سجّل في Exercism لتتعلّم وتتقن WebAssembly عبر 87 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
نستكشف حلقات `for` المتداخلة، والاستخدام الذكي لـ `min`/`max` لتبسيط التحقق من الحدود، وخطوط الأنابيب الوظيفية، واستخدام المصفوفات ثنائية الأبعاد.