Kurs zur Python-Entwicklung
Kapitel
>
Stufe
Dictionaries verwenden
Benutzerdefinierte Funktionen mit Wörterbüchern
Ziel
Verwenden Sie eine benutzerdefinierte Funktion, die durch das Feld schlendert und Pflanzen pflanzt und wässert.
Das Feld hat mehrere Bäume, die gepflanzt werden müssen. Holen Sie den Beutel mit den Samen und füllen Sie Ihr Wasser am Brunnen auf. Verwenden Sie eine benutzerdefinierte Funktion mit einem Wörterbuch, um durch das Feld zu schleifen, und pflanzen und wässern Sie dann die Samen.
Holen Sie den Samenbeutel, der Ihnen die folgenden Baumsamen in einem Wörterbuch gewährt: "orange : 3", "pear : 4", "apple : 3", "peach : 2". Gehen Sie zur leuchtenden X-Markierung neben dem Brunnen und verwenden Sie die collect()-Funktion, um Wasser zu sammeln, so: player.collect("water").
Sobald Sie alle notwendigen Materialien gesammelt haben, erstellen Sie eine benutzerdefinierte Funktion mit dem Namen sow_field, die die Samen und Wasser verwendet, um das Feld zu bepflanzen und zu bewässern. Die benutzerdefinierte Funktion wird drei (3) Argumente annehmen, nämlich: tree, loops und direction. Mit diesen Argumenten wird die benutzerdefinierte Funktion eine for-Schleife durchführen, um das Feld zu bewässern.
def sow_field(tree,loops,direction):
for x in range(loops):
if direction == "right":
player.move_forward(2)
player.turn_left()
player.plant(seeds,tree)
player.water()
player.turn_right()
player.move_forward()
if direction == "left":
player.move_forward()
player.turn_right()
player.plant(seeds,tree)
player.water()
player.turn_left()
player.move_forward(2)
Das erste Argument, tree, ist der Name des im Wörterbuch verwendeten Schlüssels, nämlich "orange", "pear", "apple" und "peach". Wählen Sie den entsprechenden Namen beim Pflanzen aus.
Das nächste Argument ist loops und bestimmt die Anzahl der Zyklen, die die Funktion durchlaufen soll. Dies entspricht der Anzahl der Samen jeder Art im Feld. Das letzte Argument ist direction, nämlich "left" und "right", wählen Sie, in welche Richtung der Spieler sich bewegen soll, wenn die Funktion geschleift wird.
Gehen Sie zum oberen Teil der Karte, nachdem Sie das Wasser gesammelt haben, und verwenden Sie die benutzerdefinierte Funktion, so: sow_field("orange", 3, "right"). Machen Sie dies für alle Baumsamen, um das Level abzuschließen.