Coding for KidsCoding for Kids
Poziomy KreatywneWyzwaniaPrzewodnik dla Nauczycieli
Głosuj na funkcje
Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom

Async/Await
Przegląd asynchroniczny

Cel

Dokumentuj produkcję butelek wina za pomocą funkcji Async, sprawdzając przydział i kończąc moczenie winnych jagód.

Produkcja butelek wina musi zostać zrealizowana, aby piwnica mogła wyprodukować wystarczającą liczbę butelek do magazynowania. Aby to osiągnąć, winne jagody muszą zostać namoczone, aby zapewnić, że wszystko zostanie przetworzone do fermentacji i przemienione w wino.

Najpierw udaj się do ciemnego znaku X, przy którym nie ma dywanu, przed papierem; ta notatka zawiera informacje o przydziale produktu, który musi zostać wyprodukowany, oraz notatki o tym, które jagody zostały namoczone. Użyj funkcji read(), aby sprawdzić przydział, zanotować, jakie są wartości winnych jagód i zapisać je w zmiennej o nazwie quota.

Gdy już poznasz wymagania, udaj się do jasnych znaków X i stój twarzą do skrzyń, aby sprawdzić, ile produktu jest gotowe do przetworzenia. Użyj funkcji read() na obu skrzyniach, aby zweryfikować zawartość przedmiotów, które są gotowe. Utwórz zmienną o nazwie wine_berries i zsumuj ilości, które odczytałeś przy obu znakach X.

Ilość ukończonego produktu nie wystarczy, aby spełnić przydział, udaj się do złotego znaku X w prawym dolnym rogu i stój twarzą do worków. Użyj funkcji collect(), aby zebrać jagody z worków, a następnie przejdź do ciemnych znaków X na dywanach.

Istnieją cztery (4) garnki, w których moczone są jagody do produkcji wina; dokument wskazuje, które garnki są gotowe do zebrania, a które wymagają, aby jagody zostały namoczone. Użyj funkcji question(), aby sprawdzić, czy chcesz zebrać namoczone winne jagody, czy namoczyć jagody w garnku. Na zielonym i żółtym dywanie z ciemnymi znakami X musisz zebrać jagody, natomiast na fioletowym i niebieskim dywanie z ciemnymi znakami X jagody należy umieścić.

Funkcja question() niezbędna do zdobycia produktu jest napisana w edytorze kodu i nosi nazwę 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")

Gdy winne jagody zostaną zebrane, udaj się do złotego znaku X po lewej stronie, obok beczek na jagody, i użyj funkcji place(), aby dodać zebrane "wine berries". Do zmiennej, którą utworzyłeś wine_berries, dodaj 100 funtów produktu, czyli 50 dla każdego z produktów, które wcześniej zebrałeś. Robi się to w następujący sposób: wine_berries+=100

Przejdź do ciemnych znaków X z czerwonym i pomarańczowym dywanem; na czerwonym dywanie przy znaku X użyj funkcji write() i wpisz ilość wine_berries, jakie masz dostępne do tej pory, w następujący sposób: player.write("There are %d pounds of product finished" % (wine_berries))

Na pomarańczowym dywanie przy znaku X użyj funkcji write(), aby zapisać ilość produktu, który jeszcze nie został ukończony. Aby ukończyć poziom, odejmij wine_berries od quota podczas zapisywania, aby określić pozostałe elementy, w następujący sposób: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))

Księga Kodów