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

القوائم المتقدمة
ترتيب المجموعات

الهدف

نظم واطبخ وجبات باستخدام Sets لفرز وتكوين المكونات.

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

هناك ثلاث ثوابت قائمة، اثنين منها لحوم، مسماة: pack1 و pack2، وواحدة من المواد الطبخية، مسماة ingredients. توجه إلى علامة X الداكنة على السجادة البرتقالية وواجه الثلاجة، استخدم الدالة collect() لالتقاط pack1 و pack2 من الثلاجة، على النحو التالي: player.collect(pack1).

بمجرد جمع اللحم، توجه إلى علامة X الفاتحة وواجه لوح التقطيع، هنا سنقوم بالتحقق من محتويات العبوات باستخدام الدالة speak() مع الثوابت القائمة التي جمعتها. من هنا سنجمع العناصر باستخدام Sets كما في المستوى السابق. أنشئ مجموعتين (Sets) مسميتين set1 و set2، وباستخدام الدالة set() قم بتعيين pack1 و pack2 لهما، على سبيل المثال: set1 = set(pack1).

بمجرد تجميع القوائم في Sets، حان الوقت لفرز وتقسيم العناصر إلى Sets أصغر لسهولة الاستخدام.

الطريقة الأولى لتحقيق ذلك تسمى systemic_difference، ستتيح لنا فصل العناصر غير المشتركة بين كل Set. أنشئ Set مسمى unique واستخدم المجموعتين للمقارنة وتحديد العناصر الفريدة باستخدام systemic_difference، على النحو التالي: unique = set1.symmetric_difference(set2). استخدم الدالة speak() مع Set الذي أنشأته لتأكيد محتويات المجموعة.

تابع عملية الفرز بإنشاء Set مسمى shared واستخدم دالة intersection التي تعلمتها في المستوى السابق لتحديد العناصر الموجودة في كلا المجموعتين. استخدم المجموعتين للمقارنة وتحديد العناصر، على النحو التالي: shared = set1.intersection(set2). استخدم الدالة speak() مع Set الذي أنشأته لتأكيد محتويات المجموعة.

أخيراً، استخدم طريقة تسمى difference، والتي ستتيح لنا فصل العناصر الموجودة فقط في مجموعة واحدة وليس في الأخرى. أنشئ مجموعتين (Sets) مسميتين meat1 و meat2، واستخدم المجموعتين الأصليتين للمقارنة وتحديد العناصر باستخدام difference، على النحو التالي: meat1 = set1.difference(set2) و meat2 = set2.difference(set1). استخدم الدالة speak() مع كلا Sets اللحمية التي أنشأتها لتأكيد محتويات كل مجموعة.

بهذا الشكل تم فرز اللحوم، توجه إلى علامة X الداكنة فوق السجادة الزرقاء، واجه الثلاجة واستخدم الدالة place() لتخزين Set shared الذي أنشأته، على النحو التالي: player.place(shared). بهذا ستضع المكونات التي لن تستخدمها في الطهي جانباً.

توجه إلى علامة X الذهبية، واجه الخزانة واستخدم الدالة collect() للحصول على الثابت الأخير للقائمة المسمى ingredients واستخدم الدالة speak() لتأكيد محتوياتها. انقل العناصر من ingredients إلى Set جديدة مسماة set3. الآن بعد أن حصلت على جميع المكونات، أنشئ مجموعتين (Sets) مسميتين meal1 و meal2 باستخدام طريقة union لدمج جميع العناصر اللازمة للطهي.

بالنسبة لـ meal1، اجمع بين set3 و meat1 على النحو التالي: meal1 = set3.union(meat1). توجه إلى علامة X الداكنة فوق السجادة البنفسجية، ومع Set meal1 استخدم الدالة speak() لتأكيد المحتويات والدالة place() لطهي الوجبة في الوعاء.

بالنسبة لـ meal2 افعل الشيء ذاته، ولكن بدلاً من ذلك استخدم طريقة union مع set3 و meat2. توجه إلى علامة X الداكنة فوق السجادة الصفراء وواجه الوعاء، استخدم الدالتين speak() و place() مع meal2 لإكمال المستوى.

كتاب الكود