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.

Kódkönyv