المسارات
/
WebAssembly
WebAssembly
/
التمارين
/
كانسة الألغام
كانسة الألغام

كانسة الألغام

صعب

مقدمة

كانسة الألغام لعبة شائعة يبحث فيها اللاعب عن الألغام بمساعدة تلميحات رقمية تشير إلى عدد الألغام المجاورة للمربع مباشرةً (أفقيًا، وعموديًا، وقطريًا).

التعليمات

مهمتك هي إضافة أعداد الألغام إلى المربعات الفارغة في لوحة كانسة الألغام مكتملة. اللوحة نفسها مستطيل مكوّن من مربعات، وكل مربع إما فارغ (' ') وإما لغم ('*').

لكل مربع فارغ، احسب عدد الألغام المجاورة له (أفقيًا، وعموديًا، وقطريًا). إذا لم يكن للمربع الفارغ أي ألغام مجاورة، فاتركه فارغًا. وإلا فاستبدله بعدد الألغام المجاورة له.

على سبيل المثال، قد تستلم لوحة بأبعاد 5 × 4 مثل هذه (المسافات الفارغة ممثلة هنا بالرمز '·' لعرضها على الشاشة):

·*·*·
··*··
··*··
·····

والتي ينبغي أن يحوّلها الكود إلى هذه:

1*3*1
13*31
·2*2·
·111·

تعليمات خاصة بالمسار

تنسيق حقل الألغام

يُمثَّل حقل الألغام كسلسلة نصية، مع محرف سطر جديد في نهاية كل صف.

على سبيل المثال: " \n * \n \n"

الذاكرة المحجوزة

يستخدم المخزن المؤقت لسلسلة الإدخال البايتات 64-319 من الذاكرة الخطية.

يمكن تعديل سلسلة الإدخال في مكانها إذا أردت ذلك.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
WebAssembly Exercism

مستعد لبدء كانسة الألغام؟

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

تعمّق في كانسة الألغام!

نستكشف حلقات `for` المتداخلة، والاستخدام الذكي لـ `min`/`max` لتبسيط التحقق من الحدود، وخطوط الأنابيب الوظيفية، واستخدام المصفوفات ثنائية الأبعاد.