Coding for KidsCoding for Kids
Kreatív SzintekKihívásokTanári Útmutató
Szavazzon a funkciókra
Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint

Haladó listák
Halmazok rendezése

Célkitűzés

Rendezd el és készíts el egy ételt úgy, hogy Sets segítségével rendszerezed és kombinálod az összetevőket.

Jó ötlet lenne elkezdeni az ételkészítést, hiszen a hűtőben néhány összetevő csomagolva van, valamint vannak olyan fűszerek, amikkel extra ízt adhatsz az ételnek. Mivel minden anyag listákban van tárolva, érdemes a Sets használatával konszolidálni az elemeket, így hozva ki a legtöbbet a főzésből.

Három (3) lista konstans létezik, ebből kettő (2) hús, melyek neve: pack1 és pack2, valamint egy (1) főzési anyag, melynek neve ingredients. Menj el a narancssárga szőnyegen található sötét X jelzéshez, fordulj a hűtőhöz, és használd a collect() függvényt az pack1 és pack2 felvételéhez, például így: player.collect(pack1).

Miután a hús bekerült, menj el a világos X jelzéshez, és fordulj a vágódeszkához, ahol a speak() függvény segítségével ellenőrizzük a két, általad összegyűjtött lista tartalmát. Innen rendezzük az elemeket Sets használatával, mint az előző szinten. Hozz létre két Set-et, melyek neve set1 és set2, és a set() függvény segítségével rendeld hozzájuk a pack1-et és pack2-t, például így: set1 = set(pack1).

Miután a listákat Sets-be konszolidáltuk, itt az ideje, hogy az elemeket kisebb, áttekinthetőbb Sets-ekre bontsuk.

Az első módszer erre a systemic_difference, amely lehetővé teszi, hogy elkülönítsük azokat az elemeket, amelyek nem közösek az egyes Set-ek között. Hozz létre egy Set-et unique néven, és használd a két Set-et az egyedi elemek azonosításához a systemic_difference segítségével, például így: unique = set1.symmetric_difference(set2). Használd a speak() metódust az általad létrehozott Set-tel, hogy megerősítsd a tartalmát.

Folytasd a rendezést úgy, hogy létrehozol egy Set-et shared néven, és az előző szinten elsajátított intersection metódust alkalmazva azonosítod azokat az elemeket, amelyek mindkét Set-ben megtalálhatók. Használd a két Set-et az elemek összehasonlításához, így: shared = set1.intersection(set2). Használd a speak() metódust az általad létrehozott Set-tel, hogy megerősítsd a tartalmát.

Végül alkalmazz egy difference nevű metódust, amellyel elkülöníthetjük azokat az elemeket, amelyek csak az egyik Set-ben találhatók meg, de a másikban nem. Hozz létre két (2) Set-et meat1 és meat2 néven, és a két eredeti Set összehasonlításával azonosítsd az elemeket a difference segítségével, például így: meat1 = set1.difference(set2) és meat2 = set2.difference(set1). Használd a speak() metódust mindkét hús Set-tel, hogy megerősítsd azok tartalmát.

Ezzel a húsok rendezésre kerültek. Menj el a kék szőnyeg feletti sötét X jelzéshez, fordulj a hűtőhöz, és használd a place() függvényt az általad létrehozott shared Set elrendezésére, például így: player.place(shared). Ezzel elpakolod azokat az összetevőket, amiket nem fogsz felhasználni a főzéshez.

Menj el az arany X jelzéshez, fordulj a szekrényhez, és használd a collect() függvényt az utolsó lista konstans, az ingredients megszerzéséhez, majd a speak() függvénnyel erősítsd meg tartalmát. Add át az ingredients elemeit egy új Set-be, melynek neve set3.

Most, hogy minden összetevő a rendelkezésedre áll, hozz létre két Set-et, meal1 és meal2 néven, a union metódus segítségével, amely az összes szükséges elemet egyesíti a főzéshez.

A meal1 esetében kombináld a set3-at és a meat1-et, például így: meal1 = set3.union(meat1). Menj el a lila szőnyeg feletti sötét X jelzéshez, és a meal1 Set-tel használd a speak() függvényt a tartalom megerősítésére, majd a place() függvényt, hogy az ételt a fazékban elkészítsd.

A meal2 esetében ugyanezt tedd, de a set3-at és a meat2-t egyesítő union metódust alkalmazva. Menj el a sárga szőnyeg feletti sötét X jelzéshez, fordulj a fazékhoz, és használd a speak() és place() függvényeket a meal2 Set-tel, hogy befejezd a szintet.

Kódkönyv