Kurs zur Python-Entwicklung
Kapitel
>
Stufe

Verwendung von Dictionaries
Über Dictionaries iterieren

Ziel

Sammle alle Materialien auf dem Feld und führe eine Inventur aller gesammelten Gegenstände durch, bevor du sie in spezielle Behälter einsortierst.

Ein Sturm hat den Außenposten an der Brücke verwüstet und Materialien überall verstreut. Ich bin sicher, dass diese Materialien später noch verwendet werden können. Führe eine Inventur für jedes Objekt durch, das du aufhebst, und bringe sie in das Lagerhaus auf der anderen Seite der Brücke.

Sammle zuerst alle Trümmer, die auf dem Feld verstreut sind, und zwar: "branches" , "boulders" und "planks". Sobald du alle Gegenstände gesammelt hast, platziere sie in einem Dictionary namens materials und füge alle drei (3) Materialnamen sowie deren Mengen darin hinzu.

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

Sobald alles in einem Dictionary gespeichert ist, begebe dich zum leuchtenden X und führe eine Inventur aller Materialien durch, die du gesammelt hast, indem du eine for-Schleife mit der Funktion speak() verwendest. Da Dictionaries sich von Listen unterscheiden, kannst du sie nicht auf die gleiche Weise sequentiell durchlaufen. Stattdessen haben Dictionaries ihre eigene Methode, dies zu bewerkstelligen.

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

Indem du zwei Variablen festlegst, in diesem Fall name und number, kannst du die beiden Felder in einem Dictionary abrufen. Mit dem in-Schlüsselwort, gefolgt vom Namen des Dictionary und der Funktion items(), kannst du das Dictionary wie eine normale for-Schleife durchlaufen.

Nachdem du das Inventar überprüft hast, gehe zu den dunklen X-Marken und lagere die Materialien, die du im Dictionary gesammelt hast, in Containern unter Verwendung der Funktion place() ab, beispielsweise so: player.place(materials["branches"]). Es gibt drei (3) dunkle X-Marken: Platziere im linken Container die "branches", im mittleren Container die "boulders" und im rechten Container die "planks". Räum alles in der richtigen Position weg, um das Level abzuschließen.

Codebuch