Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel
Async/Await
Revizuire asincronă
Obiectiv
Documentează producția de sticle de vin utilizând funcții asincrone prin verificarea cotei și finalizarea înmuiatului boabelor de struguri.
Producția de sticle de vin trebuie atinsă pentru a asigura că pivnița poate produce suficiente sticle pentru a fi stocate. Pentru a realiza acest lucru, boabele de struguri trebuie înmuiate pentru a asigura că totul este procesat pentru fermentație și transformat în vin.
Mai întâi, mergi la semnul X întunecat, fără covor, în fața unei hârtii; această notă conține informații despre cota de producție care trebuie realizată, precum și note despre ce boabe au fost înmuiate. Folosește funcția read() pentru a verifica cota și pentru a nota ce valori au boabele de struguri, stocându-le într-o variabilă numită quota.
Odată ce știi ce este necesar, mergi la semnele X luminoase și îndreaptă-te spre paleți pentru a verifica cât produs este gata pentru procesare. Folosește funcția read() pe ambele pentru a verifica conținutul articolelor care sunt gata. Creează o variabilă numită wine_berries și adună cantitățile citite la ambele semne X.
Cantitatea de produs finalizat nu va fi suficientă pentru a atinge cota, așa că mergi la semnul X auriu din partea dreaptă jos și îndreaptă-te spre saci. Folosește funcția collect() pentru a aduna boabe din saci și apoi mută-te spre semnele X întunecate de pe covoare.
Există patru (4) vase în care se înmoaie boabele pentru a fi folosite la vin, iar documentul indică care vase sunt gata de colectare și care vase au nevoie ca boabele să fie înmuiate. Folosește funcția question() pentru a verifica dacă dorești să colectezi boabele de struguri înmuiate sau să înmoi boabele în vas. Pe covoarele verzi și galbene cu semne X întunecate trebuie să colectezi boabele, iar pe covoarele mov și albastre cu semne X întunecate, boabele trebuie plasate.
Funcția question() necesară pentru a obține produsul este scrisă în editorul de cod și se numește 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")
Odată ce boabele de struguri au fost colectate, mergi la semnul X auriu din partea stângă, lângă butoaiele de boabe, și folosește funcția place() pentru a adăuga boabele de struguri ("wine berries") pe care le-ai colectat. La variabila pe care ai creat-o, wine_berries, adaugă 100 de livre de produs, adică 50 pentru fiecare dintre produsele pe care le-ai colectat anterior. Se face astfel: wine_berries+=100
Mergi la semnele X întunecate cu covoare roșii și portocalii; la semnul X de pe covorul roșu, folosește funcția write() și adaugă cantitatea de wine_berries pe care o ai disponibilă până acum, astfel: player.write("There are %d pounds of product finished" % (wine_berries))
La semnul X de pe covorul portocaliu, folosește funcția write() pentru a nota produsul care încă nu a fost finalizat. Pentru a completa nivelul, scade wine_berries din quota în timp ce scrii pentru a determina articolele rămase, astfel: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))