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

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

متوسط

مقدمة

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

التعليمات

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

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

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

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

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

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

رسائل الاستثناء

أحيانًا تحتاج إلى إثارة استثناء. وعندما تفعل ذلك، ينبغي أن تُضمّن دائمًا رسالة خطأ ذات معنى تشير إلى مصدر الخطأ. فهذا يجعل الكود أكثر قابلية للقراءة، ويساعد كثيرًا في تصحيح الأخطاء. وإذا كنت تعرف أن مصدر الخطأ سيكون من نوع معيّن، يمكنك اختيار إثارة أحد أنواع الأخطاء المضمّنة، لكن يجب أن تُضمّن معه رسالة ذات معنى.

يتطلب هذا التمرين تحديدًا أن تستخدم عبارة raise لـ"رمي" ValueError عندما تتلقى الدالة board() مدخلات غير صالحة. ولن تنجح الاختبارات إلا إذا استخدمت raise مع الاستثناء وأرفقت معه رسالة.

لإثارة ValueError مع رسالة، اكتب الرسالة كوسيط لنوع exception:

# when the board receives malformed input
raise ValueError("The board is invalid with current input.")
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Python Exercism

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

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

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

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