কিন্ডারগার্টেনের ক্লাসে শিশুরা গাছ জন্মানো সম্পর্কে শিখছে। শিক্ষক ভাবলেন, মাটিতে লাগিয়ে গাছ বড় করার জন্য ক্লাসের শিশুদের বীজ দিলে ভালো হবে। এই উদ্দেশ্যে শিশুরা জানালার সিল বরাবর ছোট ছোট কাপ রেখেছে এবং প্রতিটি কাপে এক ধরনের গাছ লাগিয়েছে। চার ধরনের বীজের মধ্যে থেকে শিশুরা নিজেদের পছন্দেরটি বেছে নিতে পেরেছে: grass, clover, radishes, and violets.
আপনার কাজ হলো, একটি ডায়াগ্রাম দেখে নির্ধারণ করা কিন্ডারগার্টেন ক্লাসের প্রতিটি শিশু কোন গাছের দায়িত্বে আছে।
ক্লাসে ১২ জন শিশু আছে:
চার ধরনের বীজ রোপণ করা হয়:
| গাছ | ডায়াগ্রামে এনকোডিং |
|---|---|
| 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-এর গাছ চাওয়া হলে, এটি দেবে:
আর Bob-এর গাছ চাইলে পাওয়া যাবে:
এই অনুশীলনীর টেস্টগুলো আশা করে যে আপনার প্রোগ্রামটি একটি Garden class হিসেবে ইমপ্লিমেন্ট করা হবে (আরও দেখুন classes)।
Python-এ ক্লাস সম্পর্কে আপনি যদি না জানেন, তবে Real Python-এর এই টিউটোরিয়ালটি শুরু করার আরেকটি ভালো জায়গা হতে পারে।
আপনার class-এ plants নামের একটি method থাকা উচিত, যা আর্গুমেন্ট হিসেবে একজন শিক্ষার্থীর নাম নেয় এবং সেই শিক্ষার্থীর গাছের নামের list রিটার্ন করে।
উদাহরণের বাগানটি তৈরি করা:
[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV
টেস্টে এটিকে এভাবে দেখানো হবে: Garden("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV").
এই রূপটি কাজ করতে হলে আপনার class-এ একটি __init__() স্পেশাল মেথড ইমপ্লিমেন্ট করতে হবে।
আপনি যদি __init__() বা কনস্ট্রাক্টর সম্পর্কে জানা না থাকেন, তাহলে Python ডকুমেন্টেশনের ক্লাস ও ইনস্ট্যান্স অবজেক্ট অংশটি আরও বিস্তারিত ব্যাখ্যা দেয়।
কিছু টেস্টে __init__()-এ আর্গুমেন্ট হিসেবে শিক্ষার্থীদের একটি list পাঠানো হয়।
এটি সমস্যা বিবৃতিতে দেওয়া বারোজন শিক্ষার্থীর তালিকাটি ওভাররাইড করা উচিত।
এই দুটি স্টেটমেন্টই আপনার __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 নিয়েও বিস্তারিত আলোচনা করা হয়েছে।
Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।