دورة تطوير بايثون
الفصل
>
المستوى

استخدام القواميس
التكرار على القواميس

الهدف

استعد جميع المواد الموجودة في الميدان وقم بجرد كل العناصر التي تم جمعها قبل وضعها في الحاويات المحددة.

لقد دمرت عاصفة المعسكر المجاور للجسر مما أدى إلى تناثر المواد في كل مكان. أنا متأكد من أن تلك المواد يمكن استخدامها لاحقًا. قم بعمل جرد لكل عنصر تلتقطه وضعه في المخزن الواقع على الجانب الآخر من الجسر.

أولاً، اجمع كل الحطام المتناثر في الميدان، والتي تشمل: "branches" ,"boulders" و "planks". بمجرد أن تجمع كل العناصر، ضعها في قاموس باسم materials وأضف إليه أسماء المواد الثلاث (3) وكمياتها.

materials = {} materials["branches"] = number of branches collected ......

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

for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))

من خلال إعداد متغيرين، في هذه الحالة name و number، يمكنك الحصول على الحقلين في القاموس. باستخدام عبارة in متبوعة باسم القاموس والدالة items() يمكنك التكرار على القاموس مثل حلقة for العادية.

بعد إجراء الجرد، توجه إلى علامات X الداكنة وخزن المواد التي جمعتها في القاموس داخل الحاويات باستخدام الدالة place()، على النحو التالي: player.place(materials["branches"]). هناك ثلاث (3) علامات X داكنة؛ في الحاوية اليسرى ضع الـ "branches"، وفي الحاوية الوسطى ضع الـ "boulders"، وفي الحاوية اليمنى ضع الـ "planks". ضع كل شيء في مكانه الصحيح لإكمال المستوى.

كتاب الكود