Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Async/Await
Opsætning af et spørgsmål
Mål
Indsaml diverse køkkenmaterialer og forbered til madlavning ved at opsætte “spørgsmål”.
Der er forskellige køkken- og madmaterialer, der skal arrangeres og forberedes til senere brug og indtagelse. For at lette dette kan du opsætte en question(); dette er en async funktion, ligesom write(), men i stedet for at vise en statisk besked, kan du vise et spørgsmål med “Yes” og “No” muligheder.
For at opsætte question() funktionen skal du også oprette en brugerdefineret funktion for at håndtere betingelser. Denne funktion skal have async skrevet i starten for at etablere den som en async funktion. Inden i funktionen gemmes question() i en variabel, og der skrives await foran, ligesom de andre async funktioner. Som et argument indeholder question() funktionen en streng med spørgsmålet, du vil stille.
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
Inde i funktionen har du en if-sætning, der bestemmer, hvilken handling der skal udføres, hvis svaret er sandt eller falsk. De brugerdefinerede spørgefunktioner bliver opsat i kodeeditoren og vil tillade dig at indsamle og/eller placere flere elementer fra en enkelt kilde.
De elementer, der skal forberedes i køkkenet, er: "water", "ice", "meat" og "potato". Disse elementer skal indsamles og placeres i forskellige områder af køkkenet. "ice" skal placeres inde i en fryser, "water" skal sættes i gryden, og både "meat" og "potato" skal placeres i hver deres ovn.
Gå først til det guldede X-mærke i det højre rum og brug den brugerdefinerede funktion await dispencer() som angivet i kodeeditoren. Vend dig mod isboksen og brug funktionen to (2) gange. Den vil stille et spørgsmål, og du skal svare Yes for at collect() "ice" og No for at collect() "water".
Når du har samlet begge disse elementer, skal du gå til det mørke X-mærke ved siden af dig, foran fryseren, og bruge place() funktionen til at aflevere "ice" inde i fryseren. På denne måde: player.place("ice"). Derefter skal du gå ned til det lyse X-mærke foran en sæk og bruge collect() funktionen til at gribe en "potato", således: player.collect("potato").
Herefter skal du gå til det mørke X-mærke ved siden af den centrale gryde og place() det "water", du har samlet, således: player.place("water"). Når det er gjort, skal du gå op til det lyse X-mærke ovenover, foran køleskabet, og indsamle "meat", således: player.collect("meat").
Nu hvor du har samlet både "meat" og "potato", skal du gå til de to (2) guld X-mærker i det venstre rum og bruge den brugerdefinerede funktion await oven() som skrevet i editoren. For spørgsmålet, i den højre ovn, skal du vælge svaret for at bage "potato", og for den venstre ovn skal du vælge svaret for at grille "meat" for at fuldføre niveauet.