المسارات
/
Python
Python
/
التمارين
/
حديقة الروضة
حديقة الروضة

حديقة الروضة

سهل

مقدمة

يتعلّم صف رياض الأطفال زراعة النباتات. ورأت المعلّمة أن من الجيد أن تمنح الصف بذورًا ليزرعوها وينمّوها في التراب. وتحقيقًا لذلك، وضع الأطفال أكوابًا صغيرة على طول عتبات النوافذ، وزرعوا في كل كوب نوعًا واحدًا من النبات. وقد أتيح للأطفال أن يختاروا ما يفضلونه من بين أربعة أنواع متاحة من البذور: grass وclover وradishes وviolets.

التعليمات

مهمتك هي أن تحدد، انطلاقًا من مخطط، النباتات المسؤول عنها كل طفل في صف رياض الأطفال.

يوجد في الصف 12 طفلًا:

  • Alice وBob وCharlie وDavid وEve وFred وGinny وHarriet وIleana وJoseph وKincaid وLarry.

تُزرع أربعة أنواع مختلفة من البذور:

النبات ترميز المخطط
Grass G
Clover C
Radish R
Violet V

يحصل كل طفل على أربعة أكواب، اثنان في كل صف:

[window][window][window]
........................ # each dot represents a cup
........................

يخصّص المعلّم الأكواب للأطفال وفق الترتيب الأبجدي لأسمائهم، وهذا يعني أن Alice تأتي أولًا وLarry يأتي أخيرًا.

وهذا مثال على مخطط يمثّل نباتات Alice:

[window][window][window]
VR......................
RG......................

في الصف الأول، الأقرب إلى النوافذ، لديها Violet وRadish. وفي الصف الثاني لديها Radish وGrass.

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

على سبيل المثال، إذا قيل له إن الحديقة تبدو هكذا:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

فإذا سُئل عن نباتات Alice، فعليه أن يعطي:

  • Violets, radishes, violets, radishes

أما إذا سُئل عن نباتات Bob، فسينتج:

  • Clover, grass, clover, clover

كيف يُنظَّم هذا التمرين في مسار Python

تتوقّع اختبارات هذا التمرين أن يكون برنامجك منفّذًا على هيئة class باسم Garden (انظر أيضًا classes). وإذا لم تكن معتادًا على الأصناف في Python، فقد يكون هذا الشرح من Real Python نقطة انطلاق إضافية جيدة.

يجب أن يُنفّذ الـclass الخاص بك method باسم plants، تأخذ اسم الطالب كوسيط وتُرجع list بأسماء النباتات التي تخص ذلك الطالب.

المُنشئات

إنشاء الحديقة في المثال:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

سيُمثَّل في الاختبارات بالشكل Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").

ولكي يعمل هذا التمثيل، سيحتاج الـclass الخاص بك إلى تنفيذ __init__() طريقة خاصة. وإذا لم تكن معتادًا على __init__() أو المُنشئات، فإن كائنات الأصناف والمثيلات في وثائق Python يقدّم شرحًا أكثر تفصيلًا.

المعاملات الافتراضية

في بعض الاختبارات، تُمرَّر list من الطلاب كوسيط إلى __init__(). ويجب أن تستبدل هذه القائمة أسماء الطلاب الاثني عشر الواردة في نص المسألة. ويجب أن يعمل كلا السطرين مع طريقة __init__() لديك:

# Make a garden based on the default 12-student roster.
Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV") 

# Make a garden based on a 2-student roster.
Garden("VRCC\nVCGG", students=["Valorie", "Raven"]) 

أحد الأساليب هو جعل list الطلاب وسيطًا افتراضيًا؛ وتشرح وثائق Python default parameters بشيء من التفصيل عند شرح تعريفات الدوال.

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

مستعد لبدء حديقة الروضة؟

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