Coding for KidsCoding for Kids
المستويات الإبداعيةالتحدياتدليل المعلم
صوت للميزات
دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

الفصول المتقدمة
تعدد الأشكال في الفئة

الهدف

إنهاء إعداد بعض خلطات النبيذ بحيث يمكن تجهيزها للمعالجة باستخدام تعددية أشكال الفصول.

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

في محرر الشيفرة، ستجد أنك قد أعددت أربعة (4) فصول تشمل أربعة أنواع مختلفة من النبيذ: grape , cherry , strawberry و mango. كل فصل سيكون له وظيفتان باسم add() و take_action(). على الرغم من أن هذه الوظائف مهيكلة بنفس الطريقة، إلا أن محتوياتها قد تختلف. يجب أن تحتوي وظيفة take_action() في كل فصل على المادة التي يجب إضافتها.

لبدء المهمة، توجه إلى علامة X المضيئة وواجِه المكتب لقراءة الملاحظة باستخدام دالة read(). دون ملاحظة المعلومات المكتوبة التي ستوضح لك ما يجب إضافته إلى وظيفة take_action() في كل فصل. على سبيل المثال، في فصل grape يجب إضافة "white oak" باستخدام دالة place() كما هو موضح أدناه:

# Class for making grape wine class grape: def __init__(self,item): self.name = "grape" self.item = item # Adds materials def add(self): player.speak("%s are added to the %s mixture." % (self.item, self.name)) # Take actions def take_action(self): player.place(self.name) # New code added player.place("white oak")

بمجرد إضافة جميع المواد التي يجب وضعها إلى وظائف الفصول، توجه إلى علامة X الذهبية والتقط المكونات التي يجب وضعها في خلطات النبيذ. استخدم دالة collect() لجمع ثابت القائمة المسمى ingredients، وتحقق من المحتويات باستخدام دالة speak().

توجه إلى أسفل الخريطة واجمع الأربع (4) أكياس من الفواكه والتوت، لكي تمتلك المكونات اللازمة لإكمال خليط النبيذ.

الآن بعد جمع كل شيء، حان الوقت لإضافة جميع المواد لإكمال خلطات النبيذ. أنشئ كائنات من الفصول واملأ وسيطها، يجب أن يكون هناك أربعة (4) كائنات: grape_mix , cherry_mix , strawberry_mix و mango_mix.

على كل كائن قم بتعيين الفصل الذي يتوافق مع الاسم وأضف العنصر الذي يحتاج إلى الخلط وفقاً للقائمة التي جمعتها. بالنسبة لـ grape، يتم إضافة "nothing"، بالنسبة لـ cherry أضف "pure water"، بالنسبة لـ strawberry أضف "sugar" وبالنسبة لـ mango أضف "spice". على سبيل المثال، يجب أن يبدو الكائن المعرفة كالتالي: grape_mix = grape("nothing")

بمجرد إنشاء الكائنات، حان الوقت لتطبيق مفهوم تعددية أشكال الفصول، توجه إلى علامة X المظلمة تحت السجادة الحمراء، وواجِه البرميل واستخدم الحلقة الموضوعة في محرر الشيفرة. ستتيح لك الحلقة التنقل إلى كل برميل للنبيذ في الصف السفلي وإضافة العناصر اللازمة لإكمال خلطاتهم.

السجادة الحمراء تحتاج إلى strawberry_mix، والسجادة الأرجوانية تحتاج إلى cherry_mix، والسجادة الخضراء تحتاج إلى grape_mix، والسجادة البرتقالية تحتاج إلى mango_mix. أضف العناصر إلى الحلقة بالترتيب الذي تم عرضه في الخريطة من اليسار إلى اليمين. على سبيل المثال:

for mix in (strawberry_mix, mango_mix, cherry_mix): mix.add() mix.take_action() player.turn_right() player.move_forward(2) player.turn_left()

كما في المثال، تتوافق الخلطات مع ترتيب وضع السجاد من اليسار إلى اليمين، مما يعني: red، orange، purple تتوافق مع strawberry_mix، mango_mix، cherry_mix. بمجرد اكتمال التسلسل، توجه إلى علامة X المظلمة على السجادة الخضراء، وواجِه البرميل وقم بنفس الشيء مع الحلقة الثانية الموضوعة في محرر الشيفرة. هذه المرة يجب أن تكون من اليمين إلى اليسار مع ألوان السجاد (green، purple، orange) كما هو موضح في الخريطة لإكمال المستوى.

كتاب الكود