مسیرها
/
Python
Python
/
تمرین‌ها
/
باغ کودکستان
باغ کودکستان

باغ کودکستان

آسان

مقدمه

کلاس مهدکودک در حال یادگیری درباره‌ی رشد گیاهان است. معلم فکر کرد ایده‌ی خوبی است که به بچه‌های کلاس دانه بدهد تا در خاک بکارند و رشد دهند. برای همین، بچه‌ها لیوان‌های کوچکی را کنار طاقچه‌های پنجره گذاشته‌اند و در هر لیوان یک نوع گیاه کاشته‌اند. بچه‌ها توانستند از میان چهار نوع دانه‌ی موجود، نوع مورد علاقه‌شان را انتخاب کنند: چمن، شبدر، تربچه و بنفشه.

دستورالعمل‌ها

وظیفه‌ی شما این است که با در دست داشتن یک نمودار، مشخص کنید هر کودک در کلاس مهدکودک مسئول کدام گیاهان است.

در این کلاس ۱۲ کودک هستند:

  • Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid, and 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

ساختار این تمرین در مسیر پایتون

آزمون‌های این تمرین انتظار دارند که برنامه‌ی شما در قالب یک class با اسم Garden پیاده‌سازی شود (به classes هم نگاه کنید). اگر با کلاس‌ها در پایتون آشنا نیستید، این آموزش Real Python می‌تواند نقطه‌ی شروع خوب دیگری باشد.

class شما باید یک method به اسم plants پیاده‌سازی کند که اسم یک دانش‌آموز را به‌عنوان ورودی می‌گیرد و list اسم‌های گیاهان متعلق به آن دانش‌آموز را برمی‌گرداند.

سازنده‌ها

ساختن باغ نمونه:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

در آزمون‌ها به‌صورت Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV") نمایش داده می‌شود.

برای اینکه این نمایش کار کند، class شما باید یک متد ویژه به اسم __init__() پیاده‌سازی کند. اگر با __init__() یا سازنده‌ها آشنا نیستید، اشیای کلاس و نمونه در مستندات پایتون توضیح مفصل‌تری می‌دهد.

پارامترهای پیش‌فرض

در برخی آزمون‌ها، یک 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 دانش‌آموزان را به یک آرگومان پیش‌فرض تبدیل کنید؛ مستندات پایتون در حین توضیح تعریف‌های تابع، default parameters را با جزئیات شرح می‌دهد.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Python Exercism

آماده‌اید باغ کودکستان را شروع کنید؟

در Exercism ثبت‌نام کنید تا Python را همراه با 17 مفهوم146 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.