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

Async/Await
Przygotowanie pytania

Cel

Zbierz różne materiały kuchenne i przygotuj się do gotowania przez ustawienie „pytań”.

Istnieje wiele materiałów kuchennych i spożywczych, które muszą zostać przygotowane i ustawione do późniejszego użycia oraz spożycia. Aby to ułatwić, możesz skonfigurować funkcję question(), która jest funkcją async podobną do write(), ale zamiast wyświetlania statycznej wiadomości, umożliwia wyświetlenie pytania z opcjami „Yes” i „No”.

Aby skonfigurować funkcję question(), musisz także utworzyć funkcję niestandardową służącą do obsługi warunków. Funkcja ta musi zaczynać się od słowa async, aby określić ją jako funkcję async. Wewnątrz, funkcja question() jest przypisywana do zmiennej, a przed nią używane jest słowo await, podobnie jak w innych funkcjach async. Jako argument funkcja question() przyjmuje łańcuch znaków z pytaniem, które zamierzasz zadać.

async def question_function(): answer = await player.question("Question you would like to ask") if answer: # Actions to take if answer is Yes else: # Actions to take if answer is No

Wewnątrz funkcji znajdziesz instrukcję if, która określi, jakie działanie podjąć w zależności od tego, czy odpowiedź jest prawdziwa, czy fałszywa. Funkcje niestandardowe związane z pytaniami zostaną skonfigurowane w edytorze kodu i pozwolą Ci zebrać i/lub umieścić wiele elementów pochodzących z jednego źródła.

Elementy, które należy przygotować w kuchni, to: "water", "ice", "meat" oraz "potato". Te przedmioty muszą zostać zebrane i umieszczone w różnych miejscach w kuchni. "ice" należy umieścić wewnątrz zamrażarki, "water" należy wlać do garnka, a zarówno "meat", jak i "potato" muszą zostać umieszczone w różnych piekarnikach.

Najpierw przejdź do złotego znaku X w pokoju po prawej stronie i użyj funkcji niestandardowej await dispencer(), która została opisana w edytorze kodu. Skieruj się w stronę urządzenia z lodem i użyj tej funkcji dwukrotnie (2 razy). Zostanie zadane pytanie, na które musisz odpowiedzieć Yes, aby wywołać collect() dla "ice", oraz No, aby wywołać collect() dla "water".

Gdy zbierzesz oba te przedmioty, przejdź do ciemnego znaku X obok ciebie, przed zamrażarką, i użyj funkcji place(), aby umieścić "ice" wewnątrz zamrażarki. Wykonaj to w następujący sposób: player.place("ice"). Następnie przejdź do jasnego znaku X przed workiem i użyj funkcji collect(), aby pobrać "potato", jak pokazano: player.collect("potato").

Następnie, przejdź do ciemnego znaku X obok centralnego garnka i użyj funkcji place(), aby umieścić zebrane "water", w następujący sposób: player.place("water"). Po zakończeniu udaj się do jasnego znaku X powyżej, przed lodówką, i zbierz "meat", tak jak: player.collect("meat").

Skoro zebrałeś zarówno "meat", jak i "potato", przejdź do dwóch (2) złotych znaków X w lewym pokoju i użyj funkcji niestandardowej await oven(), która została opisana w edytorze. W przypadku pytania, dla prawego piekarnika musisz wybrać odpowiedź, aby upiec "potato", a dla lewego piekarnika musisz wybrać odpowiedź, aby grillować "meat", aby ukończyć poziom.

Księga Kodów