Μάθημα Ανάπτυξης Python
Κεφάλαιο
>
Επίπεδο
Χρήση λεξικών
Επανάληψη σε Λεξικά
Στόχος
Ανάκτησε όλα τα υλικά στο πεδίο και εκτέλεσε απογραφή όλων των συλλεγμένων αντικειμένων προτού τα τοποθετήσεις σε συγκεκριμένα δοχεία.
Μια καταιγίδα κατέστρεψε το προάστριο δίπλα στη γέφυρα, σκορπίζοντας υλικά παντού. Είμαι σίγουρος ότι αυτά τα υλικά μπορούν να χρησιμοποιηθούν αργότερα. Εκτέλεσε απογραφή για κάθε αντικείμενο που μαζεύεις και τοποθέτησέ τα στην αποθήκη απέναντι από τη γέφυρα.
Πρώτα, συλλέξε όλα τα ερείπια που έχουν σκορπιστεί στο πεδίο, τα οποία είναι: "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". Τοποθέτησε τα όλα στη σωστή θέση για να ολοκληρώσεις το επίπεδο.