Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau
Asynchroon/afwachten
Asynchrone review
Doelstelling
Documenteer de productie van wijnflessen met behulp van Async functies door de quota te controleren en het weken van wijnbessen af te ronden.
De productie van wijnflessen moet gehaald worden om ervoor te zorgen dat de kelder voldoende flessen kan produceren voor de voorraad. Om dit te realiseren moeten de wijnbessen geweekt worden zodat alles verwerkt wordt voor de fermentatie en omgezet wordt in wijn.
Loop eerst naar het donkere X-teken zonder tapijt, voor een papier. Dit briefje bevat informatie over de te produceren productquota en notities over welke bessen geweekt zijn. Gebruik de read() functie om de quota te controleren en noteer wat de waarden van de wijnbessen zijn en sla deze op in een variabele genaamd quota.
Zodra je weet wat er nodig is, loop naar de lichte X-tekens en richt je op de kratten om te controleren hoeveel product gereed is voor verwerking. Gebruik de read() functie op beide om de inhoud van de gereedstaande items te verifiëren. Maak een variabele met de naam wine_berries en tel de hoeveelheden die je bij beide X-tekens hebt gelezen bij elkaar op.
De hoeveelheid afgewerkt product is niet voldoende om de quota te halen, loop naar het gouden X-teken rechtsonder en richt je op de zakken. Gebruik de collect() functie om bessen uit de zakken te pakken en ga vervolgens door naar de donkere X-tekens over tapijten.
Er zijn vier (4) potten die bessen weken voor gebruik in wijn. In het document staat vermeld welke potten klaar zijn om te verzamelen en welke potten nog bessen nodig hebben om geweekt te worden. Gebruik de question() functie om te controleren of je de geweekt wijnbessen wilt verzamelen of dat je de bessen in de pot wilt weken. Op de groene en gele tapijten met donkere X-tekens moet je de bessen verzamelen en op de paarse en blauwe tapijten met donkere X-tekens moeten bessen worden geplaatst.
De question() functie die nodig is om het product te verkrijgen, is geschreven in de code-editor en heet soaking_pot() :
a async def soaking_pot():
answer = await player.question("Collect berries instead of soaking them?")
if answer:
player.collect("wine berries")
else:
player.place("berries")
Zodra de wijnbessen zijn verzameld, loop naar het gouden X-teken aan de linkerkant naast de bessenvaten en gebruik de place() functie om de "wine berries" die je verzameld hebt toe te voegen. Tel op de variabele die je hebt gemaakt wine_berries er 100 pond product bij op, dat wil zeggen 50 voor elk van de producten die je eerder hebt verzameld. Dit doe je als volgt: wine_berries+=100
Loop naar de donkere X-tekens met rode en oranje tapijten, op het rode tapijt X-teken gebruik je de write() functie en voeg je de hoeveelheid wine_berries toe die je tot nu toe beschikbaar hebt, als volgt: player.write("There are %d pounds of product finished" % (wine_berries))
Op het oranje tapijt X-teken gebruik je de write() functie om het product dat nog niet is afgewerkt op te schrijven. Om het level te voltooien, trek je wine_berries af van quota terwijl je schrijft om de resterende items te bepalen, als volgt: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))