Corso di Sviluppo Python
Capitolo
>
Livello
Utilizzo dei dizionari
Iterare sui dizionari
Obiettivo
Recupera tutti i materiali sul campo ed effettua l'inventario di tutti gli oggetti raccolti prima di riporli in appositi contenitori.
Una tempesta ha distrutto l'avamposto vicino al ponte, spargendo materiali ovunque; sono sicuro che quei materiali potranno essere utili in seguito. Esegui l'inventario per ciascuno degli oggetti che raccogli e riponili nel deposito dall'altra parte del ponte.
Prima raccogli tutti i detriti sparsi nel campo, ovvero: "branches" ,"boulders" e "planks". Una volta raccolti tutti gli oggetti, inseriscili in un dizionario chiamato materials e aggiungi al suo interno tutti e tre (3) i nomi dei materiali e le rispettive quantità.
materials = {} materials["branches"] = number of branches collected ......
Una volta che tutto è stato inserito nel dizionario, dirigiti verso il segno X luminoso ed esegui l'inventario di tutti i materiali raccolti utilizzando un ciclo for con la funzione speak(). Poiché i dizionari sono differenti dalle liste, non puoi iterarli in sequenza nello stesso modo; invece, i dizionari hanno il proprio metodo per fare questo.
for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))
Impostando due variabili, in questo caso name e number, puoi ottenere i due campi di un dizionario. Utilizzando l'istruzione in seguita dal nome del dizionario e dalla funzione items(), puoi iterare sul dizionario come in un normale ciclo for.
Dopo aver eseguito l'inventario, cammina verso i segni X scuri e riponi i materiali raccolti dal dizionario all'interno dei contenitori utilizzando la funzione place(), come nel seguente esempio: player.place(materials["branches"]). Ci sono tre (3) segni X scuri: nel contenitore a sinistra riponi le "branches", in quello centrale riponi le "boulders" e in quello a destra riponi le "planks". Sistema tutto nella posizione corretta per completare il livello.