Python-utvecklingskurs
Kapitel 6
>
NivÄ 4
MÄl
Rensa ut nÄgra ogrÀs i passagen mellan byggnader med hjÀlp av loopvillkor.
Passagen mellan byggnaderna har ogrÀs som vÀxer, samla in alla ogrÀs och dumpa dem med hjÀlp av loopar. Det finns sÀtt att automatisera denna process genom att anvÀnda loopvillkor.
Skapa en variabel med namnet bag och anvÀnd den för att lagra ogrÀset nÀr du plockar upp dem. AnvÀnd en while-loop med villkor för att automatisera processen, det finns totalt tio (10) ogrÀs.
while True: player.move_forward() bag += 1 if bag == 10: break
Genom att sÀtta while-loopen till True kommer loopen inte att avslutas om inte operatorn break anvÀnds för att avsluta loopen. Varje loopcykel lÀgger till ett ogrÀs i pÄsen och kontrollerar hur mÄnga ogrÀs som har plockats upp för att bryta loopen. if-satsen anvÀnds för att kontrollera om loopen ska break eller inte, den kontrollerar hur mÄnga ogrÀs som finns i bag och bryter om antalet uppnÄs.
Efter att ha navigerat genom passagen, anvÀnd en for-loop för att dumpa ogrÀset i behÄllare med hjÀlp av funktionen place() vid X-markeringarna. Antalet steg mellan varje behÄllare Àr dock ojÀmnt eftersom det finns ett gap dÀremellan. Genom att anvÀnda operatorn continue hoppar du över en loopcykel genom att testa ett villkor via en if-sats.
for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()
I koden ovan kontrollerar if-satsen om x, det vill sÀga antalet loopcykler, Àr lika med 1. Denna for-loop körs tre (3) gÄnger som definierat av range(), eftersom x börjar pÄ 0 kör den 0, 1, 2 innan loopen avslutas. Eftersom du kontrollerar om loopcykeln Àr vid 1 kommer koden under continue inte att köras och istÀllet hoppas över om villkoret Àr uppfyllt. PÄ detta sÀtt kan vi undvika gapet mellan de tvÄ behÄllarna genom att hoppa över den mittersta cykeln.
Eftersom det finns tvÄ (2) lÄdor, anvÀnd funktionen place() för att dumpa ogrÀset som lagrats i variabeln bag genom att dela den totala mÀngden, pÄ detta sÀtt: player.place(bag/2) .
NÀr du har samlat och placerat ogrÀset pÄ rÀtt plats, nÄ utgÄngen markerad med en stjÀrna för att slutföra nivÄn.