Курс по усъвършенствано разработване с Python
Глава
>
Ниво
Асинхронно/Изчакване
Четене на съобщения
Цел
Проверете дали броят на артикулите във винения подвал е коректен, като използвате функцията read() и съберете остатъчния запас.
Във винения подвал има няколко кутии с бутилки вино, които трябва да бъдат преместени горе за разпределение. В склада на масите ще има бележки с поръчки, а до тях ще се намират кутии с бутилки. Трябва да проверите дали броят на бутилките във всяка кутия съответства на указаното в бележките и да добавите всякакви липсващи артикули.
Първо, съберете разхвърлените бутилки, които се намират във винената стая, за да ги имате под ръка и да добавите липсващите артикули от поръчките. Има три (3) вида бутилки вино, след като ги съберете, създайте променливи за тях както следва: empty_bottles, purple_bottles, yellow_bottles и запишете броя на събраните от всяка вино бутилки в съответните променливи.
След като съберете всички бутилки, отидете до светлия X, отбелязан вътре в склада, и се обърнете към бележките. Използвайте функцията read() за да прочетете информацията за поръчката от бележката чрез извикване на изскачащ прозорец. Подобно на функцията write(), функцията read() е асинхронна функция, която изисква използването на await преди кода, например: await player.read().
Бележките са оцветени съобразно килимите под тях. След като разберете номерата на поръчките, отидете до тъмния X предо цветно маркираните кутии и използвайте функцията speak() за да проверите съдържанието на всяка кутия. Има три (3) константи, съответстващи на всяка от кутиите: green_crate, blue_crate и red_crate.
Проверете дали съдържанието на всяка кутия съответства на указаното в бележката за съответния цветен килим. Ако в кутиите липсват артикули, описани в бележката, добавете ги към съдържанието на съответната кутия. Създайте променливи: empty_missing, purple_missing и yellow_missing и прибавете броя на липсващите артикули към съдържанието на кутиите.
След като зададете променливите, използвайте функцията place() за да добавите липсващите бутилки в кутиите, например: player.place(empty_missing). След като зададете всички артикули, отидете до златния X и използвайте write() за да запишете обобщение на всички останали бутилки, които не са били съхранени.
Чернова на съобщението ще бъде написана в редактора на кода; задайте правилните количества на всяка от останалите бутилки, като извадите двете създадени променливи, например: empty_bottles-empty_missing. След като бъдат обобщени всички останали артикули, ще завършите нивото.