Coding for KidsCoding for Kids
Творческие УровниИспытанияРуководство для Учителей
Голосовать за функции
Продвинутый курс разработки на Python
Глава
>
Уровень

Асинхронность и ожидание
Асинхронный обзор

Цель

Документируйте производство винных бутылок с использованием асинхронных функций, проверяя квоту и завершая замачивание виноградных ягод.

Производство винных бутылок должно быть выполнено для обеспечения того, чтобы подвал мог производить достаточное количество бутылок для хранения. Для достижения этой цели виноградные ягоды необходимо замачивать, чтобы всё было подготовлено для брожения и превращения в вино.

Сначала пройдите к темной метке X без ковра перед бумагой, эта заметка содержит информацию о квоте продукции, которую необходимо произвести, а также заметки о том, какие ягоды были замочены. Используйте функцию read(), чтобы проверить квоту и отметить значения виноградных ягод, сохранив их в переменной с именем quota.

После того как вы узнаете требуемое количество, пройдите к светлым меткам X и повернитесь к ящикам, чтобы проверить, сколько продукции готово к обработке. Используйте функцию read() на обеих, чтобы проверить содержимое готовых предметов. Создайте переменную с именем wine_berries и сложите значения, которые вы считали с обеих меток X.

Если произведенного количества продукции окажется недостаточно для выполнения квоты, пройдите к золотой метке X в нижней правой части и повернитесь к мешкам. Используйте функцию collect(), чтобы собрать ягоды из мешков, и затем переместитесь к темным меткам X на коврах.

Существует четыре (4) котла, в которых замачивают ягоды для производства вина. В документе указано, какие котлы готовы для сбора, а в каких необходимо замачивать ягоды. Используйте функцию question(), чтобы проверить, хотите ли вы собрать замоченные виноградные ягоды или замачивать ягоды в котле. На зеленых и желтых коврах с темными метками X вам нужно собрать ягоды, а на пурпурных и синих коврах с темными метками X ягоды необходимо разместить.

Функция question(), необходимая для получения продукции, уже написана в редакторе кода и называется 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")

После того как виноградные ягоды будут собраны, пройдите к золотой метке X на левой стороне рядом с ящиками для ягод и используйте функцию place(), чтобы добавить собранные "wine berries". В переменной, которую вы создали, wine_berries, прибавьте 100 фунтов продукции, то есть по 50 для каждой ранее собранной продукции. Это делается следующим образом: wine_berries+=100

Перейдите к темным меткам X с красными и оранжевыми коврами, на метке X с красным ковром используйте функцию write() и запишите количество wine_berries, доступное на данный момент, следующим образом: player.write("There are %d pounds of product finished" % (wine_berries))

На метке X с оранжевым ковром используйте функцию write() для записи продукции, которая еще не готова. Чтобы завершить уровень, вычтите wine_berries из quota при записи, чтобы определить оставшиеся единицы, следующим образом: player.write("There are %d pounds of product Remaining" % (quota-wine_berries))

Книга Кода