Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Async/Await
Asynkron granskning
Mål
Dokumentera produktionen av vinflaskor med hjälp av asynkrona funktioner genom att kontrollera kvot och avsluta blötläggningen av vinbär.
Vinflaskproduktionen måste uppfyllas för att säkerställa att källaren kan producera tillräckligt med flaskor för att lagerföras. För att åstadkomma detta måste vinbären blötläggas så att allt bearbetas för jäsning och omvandlas till vin.
Gå först till den mörka X-markeringen utan matta framför ett papper, denna lapp innehåller information om den produktkvot som måste produceras samt anteckningar om vilka bär som har blötlagts. Använd funktionen read() för att kontrollera kvoten och notera vad värdena för vinbären är och lagra dem i en variabel som heter quota.
När du vet vad som krävs, gå till de ljusa X-markeringarna och vänd dig mot lådorna för att kontrollera hur mycket produkt som är redo för bearbetning. Använd funktionen read() på båda för att verifiera innehållet i de objekt som är klara. Skapa en variabel som heter wine_berries och summera de kvantiteter du läste vid båda X-markeringarna.
Mängden färdig produkt kommer inte att bli tillräcklig för att uppfylla kvoten, gå till den gyllene X-markeringen längst ner till höger och vänd dig mot säckarna. Använd funktionen collect() för att hämta bär från säckarna och fortsätt sedan till de mörka X-markeringarna på mattor.
Det finns fyra (4) krukor där bär blötläggs för att användas i vin. I dokumentet visas vilka krukor som är klara för insamling och vilka krukor som behöver få bär blötlagda. Använd funktionen question() för att kontrollera om du vill samla in blötlagda vinbär eller blötlägga bär i krukan. På de gröna och gula mattorna med mörka X-markeringar måste du samla in bär och på de lila och blå mattorna med mörka X-markeringar måste bär placeras.
Funktionen question() som är nödvändig för att samla in produkten är skriven i kodredigeraren och heter soaking_pot() :
async def soaking_pot():
answer = await player.question("Collect berries instead of soaking them?")
if answer:
player.collect("wine berries")
else:
player.place("berries")
När vinbären har samlats in, gå till den gyllene X-markeringen till vänster bredvid bärfatten och använd funktionen place() för att lägga till de "wine berries" du samlat in. Till variabeln du skapade, wine_berries, addera 100 pund produkt, det är 50 för varje produkt du tidigare samlat in. Detta görs så här: wine_berries+=100
Gå till de mörka X-markeringarna med röda och orange mattor, på den röda mattans X-märke, använd funktionen write() och skriv in mängden wine_berries du har tillgänglig hittills, så här: player.write("There are %d pounds of product finished" % (wine_berries))
På den orange mattans X-märke, använd funktionen write() för att skriva ner den produkt som ännu inte har färdigställts. För att slutföra nivån, subtrahera wine_berries från quota medan du skriver för att bestämma de återstående objekten, så här: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))