Coding for KidsCoding for Kids
Creatieve LevelsUitdagingenLerarengids
Stem op functies
Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau

Async/Await
Een vraag opzetten

Doelstelling

Verzamel diverse keukengerelateerde materialen en bereid ze voor op het koken door “questions” op te zetten.

Er zijn verschillende keukeningrediënten en voedingsmaterialen die klaargezet en voorbereid moeten worden voor later gebruik en consumptie. Om dit te vergemakkelijken kun je een question() opzetten, dit is een async functie vergelijkbaar met write(), maar in plaats van een statisch bericht weer te geven, kun je een vraag weergeven met “Yes” en “No” opties.

Om de question() functie op te zetten moet je ook een aangepaste functie instellen om voorwaarden af te handelen. Deze functie moet async aan het begin bevatten om hem als een async functie te markeren. Binnenin wordt de question() functie opgeslagen in een variabele en heeft de functie await ervoor, net als de andere async functies. Als argument bevat de question() functie een string met de vraag die je wilt stellen.

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

Binnen de functie gebruik je een if-statement die bepaalt welke actie ondernomen moet worden als het antwoord true of false is. De aangepaste vraagfuncties worden opgezet in de code-editor en stellen je in staat om meerdere items van één enkele bron te verzamelen en/of te plaatsen.

De items die in de keuken voorbereid moeten worden zijn: "water", "ice", "meat" en "potato". Deze items moeten verzameld en op verschillende plekken in de keuken geplaatst worden. De "ice" moet in een vriezer worden geplaatst, het "water" moet in de pan worden gegoten, en zowel het "meat" als de "potato" moeten in verschillende ovens worden geplaatst.

Loop eerst naar de gouden X-markering in de rechter kamer en gebruik de aangepaste functie await dispencer() die in de code-editor is beschreven. Ga naar de ijscontainer en gebruik de functie twee (2) keer. Hij zal een vraag stellen en je moet Yes antwoorden om "ice" te collect() en No om "water" te collect().

Zodra je beide items hebt verzameld, loop je naar de donkere X-markering naast je, voor de vriezer, en gebruik je de place() functie om de "ice" in de vriezer te plaatsen. Zo: player.place("ice"). Vervolgens loop je naar de lichte X-markering voor een zak en gebruik je de collect() functie om een "potato" te pakken, zoals: player.collect("potato").

Daarna loop je naar de donkere X-markering naast de middelste pan en place() je het "water" dat je had verzameld, zoals: player.place("water"). Als je klaar bent, loop je naar de lichte X-markering boven de pan, voor de koelkast, en verzamel je "meat", zoals: player.collect("meat").

Nu je zowel het "meat" als de "potato" hebt verzameld, loop je naar de twee (2) gouden X-markeringen in de linker kamer en gebruik je de aangepaste functie await oven() die in de editor is geschreven. Voor de vraag, voor de rechter oven, moet je kiezen voor bake van de "potato" en voor de linker oven moet je kiezen voor grill van het "meat" om het level te voltooien.

Codeboek