Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint
Async/Await
Kérdés beállítása
Célkitűzés
Gyűjts össze különféle konyhai anyagokat és készítsd elő a főzéshez a „kérdések” beállításával.
Különféle konyhai és élelmiszer-alapanyagokat kell előkészíteni a későbbi felhasználásra és fogyasztásra. Ennek megkönnyítésére beállíthatsz egy question() függvényt, ami egy async függvény, hasonlóan a write() függvényhez, de statikus üzenet megjelenítése helyett egy kérdést jelenít meg a „Igen” és „Nem” opciókkal.
A question() függvény beállításához egyedi függvényt is létre kell hoznod a feltételek kezelésére. Ennek a függvénynek az elején async szerepel, hogy jelezze, egy async függvényről van szó. Belül a question() függvényt egy változóban tároljuk, és a többi async függvényhez hasonlóan az await kulcsszó szerepel előtte. Argumentumként a question() függvény egy stringet vár, amely a feltenni kívánt kérdést tartalmazza.
async def question_function():
answer = await player.question("Question you would like to ask")
if answer:
# Actions to take if answer is Yes
else:
# Actions to take if answer is No
A függvényen belül egy if utasítást használsz, amely meghatározza, milyen műveletet kell végrehajtani attól függően, hogy a válasz igaz vagy hamis-e. A kérdésre szabott függvényeket a kódszerkesztőben állítjuk be, és lehetővé teszik, hogy egyetlen forrásból több elemet gyűjts össze és/vagy helyezz el.
A konyhában előkészítendő elemek a következők: "water", "ice", "meat" és "potato". Ezeket az elemeket különböző helyeken kell összegyűjteni és elhelyezni a konyhában. Az "ice"-et a fagyasztóba kell helyezni, a "water"-t a fazékba, míg a "meat"-et és a "potato"-t két különböző sütőbe.
Először menj a jobb oldali szobában található arany X jelzéshez, és használd a kódszerkesztőben megadott egyedi függvényt, a await dispencer()-t. Nézz szembe az jégdobozzal, és használd a függvényt kétszer (2 alkalommal). Kérdést fog feltenni, és Igen-nel kell válaszolnod, hogy collect()-al összegyűjtsd az "ice"-et, illetve Nem-mel a collect() segítségével a "water"-t.
Miután mindkét elemet összegyűjtötted, menj a közeledben lévő sötét X jelzéshez, a fagyasztó előtt, és használd a place() függvényt az "ice" fagyasztóba helyezéséhez. Ilyen módon: player.place("ice"). Ezután menj le a könnyű X jelzéshez, amely egy zsák előtt található, és használd a collect() függvényt, hogy összegyűjtsd a "potato"-t, például így: player.collect("potato").
Ezután menj a középső fazék mellett lévő sötét X jelzéshez, és használd a place() függvényt a korábban összegyűjtött "water" elhelyezéséhez, például így: player.place("water"). Miután ez megtörtént, menj fel a fölötte lévő könnyű X jelzéshez, a hűtőszekrény előtt, és gyűjtsd össze a "meat"-et, például így: player.collect("meat").
Most, hogy összegyűjtötted mind a "meat"-et, mind a "potato"-t, menj a bal oldali szobában található két (2) arany X jelzéshez, és használd a kódszerkesztőben megadott egyedi függvényt, a await oven()-t. A feladat során a jobb oldali sütőnél a "potato" esetében a sütés opciót kell választanod, míg a bal oldali sütőnél a "meat" esetében a grillezés opciót kell választanod a szint teljesítéséhez.