Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå

Async/Await
Ställa in en fråga

Mål

Samla olika köksmaterial och förbered för matlagning genom att skapa “frågor”.

Det finns olika köks- och livsmedelsmaterial som måste ställas in och förberedas för senare användning och konsumtion. För att underlätta detta kan du använda funktionen question(), denna async-funktion liknar write(), men istället för att visa ett statiskt meddelande kan du visa en fråga med alternativen “Yes” och “No”.

För att konfigurera question()-funktionen måste du även skapa en anpassad funktion för att hantera villkor. Funktionen måste inledas med async för att definieras som en async-funktion. Inuti lagras funktionen question() i en variabel och await skrivs framför, precis som i de andra async-funktionerna. Som argument tar question()-funktionen en sträng med frågan du vill ställa.

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

Inuti funktionen har du ett if-sats som bestämmer vilken åtgärd som ska vidtas beroende på om svaret är sant eller falskt. De anpassade frågefunktionerna kommer att ställas in i kodredigeraren och låter dig samla in och/eller placera flera objekt från en enda källa.

De objekt som behöver förberedas i köket är: "water", "ice", "meat" och "potato". Dessa objekt måste samlas in och placeras på olika platser i köket. "ice" måste placeras i en frys, "water" måste läggas i grytan, och både "meat" och "potato" måste placeras i olika ugnar.

Först, gå till den gyllene X-markeringen i det högra rummet och använd den anpassade funktionen await dispencer() som finns beskriven i kodredigeraren. Vänd dig mot islådan och använd funktionen två (2) gånger. Den kommer att ställa en fråga och du måste svara Yes för att collect() "ice" och No för att collect() "water".

När du har samlat in båda dessa objekt, gå till den mörka X-markeringen bredvid dig, framför frysen, och använd funktionen place() för att placera "ice" inuti frysen. Så här: player.place("ice"). Gå sedan ner till den ljusa X-markeringen framför en säck och använd funktionen collect() för att hämta en "potato", så här: player.collect("potato").

Därefter, gå till den mörka X-markeringen bredvid den centrala grytan och place() det "water" du har samlat in, på följande sätt: player.place("water"). När du är klar, gå upp till den ljusa X-markeringen ovanför, framför kylskåpet, och hämta "meat", så här: player.collect("meat").

Nu när du har samlat in både "meat" och "potato", gå till de två (2) gyllene X-markeringarna i det vänstra rummet och använd den anpassade funktionen await oven() som finns skriven i kodredigeraren. För frågan, i den högra ugnen, måste du välja alternativet att baka "potato" och för den vänstra ugnen måste du välja alternativet att grilla "meat" för att slutföra nivån.

Kodbok