Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Async/Await
Asynkroninen katsaus

Tavoite

Dokumentoi viinipullojen tuotantoa käyttämällä async-funktioita tarkistamalla kiintiö ja viimeistelemällä viinimarjojen liottaminen.

Viinipullojen tuotanto tulee saada valmiiksi, jotta kellari pystyy tuottamaan riittävästi pulloja varastoitavaksi. Tämän saavuttamiseksi viinimarjat on liotettava, jotta kaikki valmistellaan käymisprosessia varten ja muutetaan viiniksi.

Kävele ensin pimeälle X-merkin kohdalle, jossa ei ole mattoa paperin edessä. Tämä merkintä sisältää tietoa valmistettavasta tuotekiintiöstä sekä muistiinpanoja liotetuista marjoista. Käytä funktiota read() tarkistaaksesi kiintiön, kirjaa ylös mitkä viinimarjojen arvot ovat, ja tallenna ne muuttujaan nimeltä quota.

Kun tiedät vaaditun määrän, kävele vaaleiden X-merkkien luo ja käänny laatikoiden puoleen tarkistaaksesi, kuinka paljon tuotetta on valmiina prosessoitavaksi. Käytä funktiota read() molemmissa tarkistaaksesi valmiiden esineiden sisällön. Luo muuttuja nimeltä wine_berries ja lisää yhteen molemmista X-merkeistä lukemasi määrät.

Valmistuneen tuotteen määrä ei riitä kiintiön täyttämiseen, joten kävele kultaisen X-merkin luo oikeassa alakulmassa ja käänny säkkien puoleen. Käytä funktiota collect() kerätäksesi marjoja säkeistä ja siirry pimeille X-merkeille mattojen yli.

Dokumentissa on neljä (4) kattilaa, joissa marjoja liotetaan viiniä varten. Siinä näkyy, mitkä kattilat ovat valmiina kerättäväksi ja mitkä tarvitsevat marjojen liottamista. Käytä funktiota question() tarkistaaksesi, haluatko kerätä liotettuja viinimarjoja vai liottaa marjoja kattilassa. Vihreillä ja keltaisilla matoilla varustetuilla pimeillä X-merkeillä sinun tulee kerätä marjoja, ja violettien sekä sinisten mattojen pimeillä X-merkeillä marjoja tulee sijoittaa.

Funktio question(), joka on tarpeen tuotteen hankkimiseksi, löytyy koodieditorista ja on nimeltään 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")

Kun viinimarjat on kerätty, kävele kultaisen X-merkin luo vasemmalla puolella marjatunkkojen viereen ja käytä funktiota place() lisätäksesi keräämäsi "wine berries". Lisää luomaasi muuttujaan wine_berries 100 paunaa tuotetta, eli 50 kummastakin aiemmin kerätystä tuotteesta. Tämä tehdään seuraavasti: wine_berries+=100

Siirry pimeille X-merkeille, joissa on punaiset ja oranssit matot. Punaisen maton X-merkillä käytä funktiota write() ja lisää tähänastinen wine_berries-määrä seuraavasti: player.write("There are %d pounds of product finished" % (wine_berries))

Oranssin maton X-merkillä käytä funktiota write() kirjoittaaksesi vielä valmistumattomasta tuotteesta. Tason suorittamiseksi vähennä quota muuttujasta wine_berries samalla, kun kirjoitat jäljellä olevien tuotteiden määrän, esimerkiksi näin: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))

Koodikirja