Python fejlesztési kurzus
Fejezet
>
Szint
Feltételek
Kilépési és folytatási utasítások
Célkitűzés
Tisztítsd meg az épületek közötti folyosót a ciklusfeltételek segítségével a gyomoktól.
Az épületek közötti folyosón gyomok nőnek, gyűjtsd össze az összes gyomot, és dobd ki őket ciklusok segítségével. Számos módja van annak, hogy automatizáld ezt a folyamatot ciklusfeltételek használatával.
Hozz létre egy bag nevű változót, és használd azt a gyomok tárolására, amint összegyűjtöd őket. Használj egy while ciklust feltételekkel a folyamat automatizálásához, mivel összesen tíz (10) gyom van.
while True: player.move_forward() bag += 1 if bag == 10: break
Ha a while ciklust True-ra állítjuk, a ciklus nem ér véget, hacsak a break operátort nem használjuk a ciklus lezárására. Minden egyes ciklus hozzáad egy gyomot a zsákhoz, és ellenőrzi, hogy hány gyomot gyűjtöttünk már össze a ciklus megszakításához. Az if utasítás arra szolgál, hogy ellenőrizze, a ciklust le kell-e szakítani, azaz hány gyom van a bag-ban, és ha a kívánt mennyiség elérkezik, megszakítja a ciklust.
A folyosó bejárása után használd a for ciklust a gyomok tárolókba történő lerakásához, a place() függvényt használva az X jelzéseknél. Az egyes tárolók közötti lépések száma egyenetlen, mert hézag van közöttük. A continue operátor segítségével egy cikluslépést kihagysz azzal, hogy egy feltételt tesztelsz az if utasítással.
for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()
A fenti kódban az if utasítás azt ellenőrzi, hogy x – vagyis a ciklusok száma – 1-nél van-e. Ez a for ciklus három (3) alkalommal fut le, ahogy azt a range() határozza meg; mivel x 0-val kezdődik, a ciklus a 0, 1, 2 értékeken fut le, mielőtt befejeződik. Mivel az ellenőrzés során kiszűröd, amikor a ciklus éppen 1-nél van, a continue alatti kód nem hajtódik végre, hanem kihagyásra kerül, ha a feltétel teljesül. Így elkerülhetjük a hézagot a két tároló között, ugyanis kihagyjuk a középső ciklust.
Mivel két (2) láda van, használd a place() függvényt a bag változóban tárolt gyomok lerakásához úgy, hogy a teljes mennyiséget elosztod, például így: player.place(bag/2) .
Miután összegyűjtötted és a gyomokat a megfelelő helyre tetted, érj el a csillaggal jelölt kijárathoz a szint befejezéséhez.