Курс по усъвършенствано разработване с Python
Глава
>
Ниво
Async/Await
Настройване на въпрос
Цел
Съберете различни кухненски материали и ги пригответе за готвене, като настроите „въпроси”.
Съществуват различни кухненски и хранителни материали, които трябва да бъдат подредени и подготвени за по-късна употреба и консумация. За да улесните това, можете да настроите функцията question(), която е async функция, подобна на write(), но вместо да показва статично съобщение, можете да покажете въпрос с опции “Да” и “Не”.
За да настроите функцията question(), трябва също така да дефинирате потребителска функция, която да се справя с условията. Тази функция трябва да започва с async, за да се установи като async функция. Вътре в нея, функцията question() се присвоява на променлива и има await поставено пред нея, както и другите async функции. Като аргумент, функцията 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, за да съберете "ice", и No, за да съберете "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(), написана в редактора. При въпроса, в дясната фурна трябва да изберете отговора за печене на "potato", а в лявата фурна трябва да изберете отговора за грил на "meat", за да завършите нивото.