Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Асинхрон/Изчакване
Асинхронен преглед

Цел

Документирайте производството на бутилки вино, използвайки асинхронни функции, като проверявате квотата и завършвате накисляването на wine berries.

Производството на бутилки вино трябва да бъде осъществено, за да се гарантира, че мазето може да произведе достатъчно бутилки за складиране. За да се постигне това, wine berries трябва да бъдат накиснати, за да се гарантира, че всичко е обработено за ферментация и превърнато във вино.

Първо, отидете до тъмния X знак без килим пред хартия; тази бележка съдържа информация за квотата на продукта, който трябва да бъде произведен, както и бележки за това кои berries са били накиснати. Използвайте функцията read() за да проверите квотата и отбележете какви са стойностите на wine berries, като ги запазите в променлива с име quota.

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

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

Има четири (4) съда, в които се накисват berries за вино; в документа се посочва кои съдове са готови за събиране и кои съдове трябва да получат berries за накисляне. Използвайте функцията question() за да проверите дали желаете да съберете накиснатите wine berries или да накиснете berries в съда. На зелените и жълтите килими с тъмни X знаци трябва да съберете berries, а на пурпурните и сините килими с тъмни X знаци berries трябва да бъдат поставени.

Функцията 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")

След като wine berries бъдат събрани, отидете до златния X знак в лявата част до бъчвите с berries и използвайте функцията 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))

Книга с Код