Coding for KidsCoding for Kids
Творческие УровниИспытанияРуководство для Учителей
Голосовать за функции
Продвинутый курс разработки на 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, который определяет, какие действия предпринять в зависимости от того, истинный ответ или ложный. Пользовательские функции для вопросов будут настроены в редакторе кода и позволят вам собирать и/или размещать несколько объектов из одного источника.

Объекты, которые необходимо подготовить на кухне: "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", чтобы пройти уровень.

Книга Кода