Поглиблений курс розробки на Python
Розділ
>
Рівень
Асинхрон/Очікування
Налаштування питання
Мета
Збирайте різні кухонні матеріали та готуйтеся до приготування, налаштовуючи «питання»
Існує багато кухонних та харчових матеріалів, які потрібно підготувати для подальшого використання та споживання. Для цього можна налаштувати question(), це async функція, схожа на write(), але замість відображення статичного повідомлення, вона відображає питання з варіантами “Yes” та “No”.
Щоб налаштувати функцію question(), потрібно також створити спеціальну функцію для обробки умов. Ця функція повинна починатися з ключового слова async, щоб встановити її як async функцію. Усередині вона зберігає функцію question() у змінній, і перед нею, як і у інших async функцій, знаходиться await. Як аргумент, функція question() приймає рядок із питанням, яке ви збираєтеся задати.
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
Усередині функції ви використовуєте умовний оператор if, який визначає, яку дію виконати, якщо відповідь є true або false. Спеціальні функції для питань будуть налаштовані в редакторі коду і дозволять вам збирати та/або розміщувати кілька об'єктів з одного джерела.
Об'єкти, що потребують підготовки на кухні: "water", "ice", "meat" та "potato". Ці об'єкти потрібно зібрати та розташувати в різних зонах кухні. "ice" потрібно помістити в морозильник, "water" — в казан, а "meat" та "potato" потрібно розмістити в різних духовках.
Спочатку перейдіть до золотої позначки X у правій кімнаті та скористайтеся спеціальною функцією await dispencer(), яка описана в редакторі коду. Зверніться до льодового ящика та використайте функцію двічі (2). Вона задасть питання, і ви повинні відповісти Yes для collect() "ice" та No для collect() "water".
Після того як ви зберете обидва ці об'єкти, підійдіть до темної позначки X поруч із собою, перед морозильником, і використайте функцію place() для розміщення "ice" всередині морозильника. Так: player.place("ice"). Потім перейдіть до світлої позначки X перед мішком і скористайтеся функцією collect(), щоб взяти "potato": player.collect("potato").
Після цього підійдіть до темної позначки X поруч із центральним казаном і використайте place(), щоб розмістити зібране "water", як показано: player.place("water"). Коли це буде зроблено, підійдіть до світлої позначки X зверху, перед холодильником, і зберіть "meat", як показано: player.collect("meat").
Тепер, коли ви зібрали як "meat", так і "potato", перейдіть до двох (2) золотих позначок X у лівій кімнаті та скористайтеся спеціальною функцією await oven(), яка описана в редакторі. Для питання: на правій духовці ви повинні вибрати відповідь для bake "potato", а на лівій — вибрати відповідь для grill "meat", щоб завершити рівень.