Python-utvecklingskurs
Kapitel
>
Nivå
Använda ordböcker
Egendefinierade funktioner med ordböcker
Mål
Använd en anpassad funktion som loopar genom fältet, planterar och vattnar grödorna.
Fältet har flera träd som behöver planteras, hämta väskan med frön och fyll sedan på vattnet vid brunnen. Använd en anpassad funktion med en ordbok för att loopa igenom fältet, och plantera därefter och vattna fröna.
Ta väskan med frön som ger dig följande trädfrön i en ordbok: "orange : 3" , "pear : 4" , "apple : 3" , "peach : 2". Gå till den ljusmarkerade X-märkningen bredvid brunnen och använd funktionen collect() för att hämta vatten, så här: player.collect("water").
När du har samlat in alla nödvändiga material, skapa en anpassad funktion som heter sow_field med hjälp av frön och vatten för att plantera och bevattna fältet. Den anpassade funktionen tar tre (3) argument, nämligen: tree, loops och direction. Med dessa argument kommer funktionen att utföra en for-loop för att bevattna fältet.
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)
Det första argumentet, tree, är namnet på nyckeln som används i ordboken, det vill säga "orange", "pear", "apple" och "peach". Välj rätt namn när du planterar.
Nästa argument är loops och detta bestämmer antalet cykler som funktionen ska loopa. Detta är lika med antalet frön av varje typ i fältet. Det sista argumentet är direction, vilket kan vara "left" och "right", välj vilken riktning du vill att spelaren ska röra sig åt när funktionen loopar.
Gå till den översta delen av kartan efter att du samlat in vatten och använd den anpassade funktionen, på följande sätt: sow_field("orange", 3, "right"). Gör detta för alla trädfrön för att slutföra nivån.