Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň
Async/Await
Nastavení otázky
Cíl
Shromážděte různé kuchyňské materiály a připravte je na vaření nastavením „otázek“.
Existuje řada kuchyňských a potravinářských materiálů, které je třeba připravit a připravit k pozdějšímu použití a konzumaci. Pro usnadnění si můžete nastavit funkci question(), jedná se o async funkci podobnou write(), ale místo zobrazení statické zprávy můžete zobrazit otázku s možnostmi „Yes“ a „No“.
Chcete-li nastavit funkci question(), musíte také vytvořit vlastní funkci pro zpracování podmínek. Tato funkce musí na začátku obsahovat async, aby byla definována jako async funkce. Uvnitř je funkce question() uložena do proměnné a funkce má před sebou await, stejně jako ostatní async funkce. Jako argument má funkce question() řetězec s otázkou, kterou se chystáte položit.
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
Uvnitř funkce bude podmínka (if statement), která určí, jakou akci vykonat, pokud je odpověď pravdivá nebo nepravdivá. Vlastní funkce pro otázky budou nastaveny v editoru kódu a umožní vám shromažďovat a/nebo umisťovat více položek ze stejného zdroje.
Položky, které je třeba připravit v kuchyni, jsou: "water", "ice", "meat" a "potato". Tyto položky je třeba shromáždit a umístit do různých oblastí v kuchyni. "ice" je třeba umístit do mrazáku, "water" se má vložit do hrnce, "meat" a "potato" je třeba umístit do různých pecí.
Nejprve jděte k zlaté značce X v pravé místnosti a použijte vlastní funkci await dispencer(), která je uvedena v editoru kódu. Otočte se ke lednici a použijte funkci dvakrát (2x). Zeptá se vás otázky a musíte odpovědět Yes pro collect() "ice" a No pro collect() "water".
Jakmile nasbíráte obě tyto položky, jděte k tmavé značce X vedle vás, před mrazákem, a použijte funkci place() k vložení "ice" do mrazáku. Takto: player.place("ice"). Poté jděte k světlé značce X před pytlem a použijte funkci collect() k sebrání "potato", takto: player.collect("potato").
Následně jděte k tmavé značce X vedle středu hrnce a pomocí funkce place() vložte "water", kterou jste nasbírali, takto: player.place("water"). Jakmile to uděláte, jděte k světlé značce X nad tím, před lednicí, a seberte "meat", takto: player.collect("meat").
Nyní, když jste nasbírali jak "meat", tak "potato", jděte k dvěma zlatým značkám X v levé místnosti a použijte vlastní funkci await oven(), která je napsána v editoru. U otázky u pravé trouby musíte zvolit odpověď pro pečení "potato" a u levé trouby musíte zvolit odpověď pro grilování "meat", aby byla úroveň dokončena.