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

Haladó osztályok
Operátor túlterhelése

Célkitűzés

Számszerűsítsd, mennyi bor kerül tisztításra vektorok és operátor túlterhelés segítségével.

Miután a bort kinyomták, szűrni és tisztítani kell, több hordóban is szűrés zajlik, és az összeset ki kell öblíteni. Fontos nyomon követni, mennyi bor készül, hogy a hordókat le lehessen zárni és érlelni.

Ehhez létre kell hozni vektorokat és össze kell adni őket, amelyek hasonlóak a listákhoz, de nem olyan rugalmasak, miközben memóriatakarékosabbak. Általában koordináták kezelésére használják őket, ebben az esetben változókként használjuk, amelyek több értéket tartalmaznak. A vektorok összeadását Operátor túlterheléssel végezzük, amely kibővíti az osztályobjektumok funkcionalitását, hogy az operátorokat úgy használhassuk velük, mint normál értékek esetében.

Kezdésként sétálj, és gyűjtsd be a szoba tetején található fémből készült víztartó dobozokat, melyeket a hordókban szűrt bor öblítésére fogsz használni. Miután összegyűjtötted őket, sétálj a vörös szőnyegen található sötét X jelzéshez, fordulj a hordó felé, és kezd el vektorosítani minden hordó tartalmát.

Az X jelzések háromos csoportokban vannak elrendezve minden színű szőnyeg esetén: egy arany X, egy világos X és egy sötét X jelzés. Minden sötét és világos X jelzésnél használd a water() függvényt a hordók öblítéséhez. Ugyanakkor minden sötét és világos X jelzésnél használd a read() függvényt annak meghatározásához, mennyi bor kerül feldolgozásra az adott hordóoszlopban. Az arany X jelzésnél a write() függvényt használd az összegek összesített nyilvántartásához.

A kódszerkesztőben található egy vector nevű osztály, amely lehetővé teszi, hogy ne csak vektorokat hozz létre, hanem azokat össze is add. Hozz létre vector objektumokat a világos és sötét X jelzéseken azonosított adatok tárolásához. Például a red szőnyegeken vörös bort szűrnek:

# Create object using data from dark X mark red_wine_dark = vector(345, 272) # Create object using data from light X mark red_wine_light = vector(248, 432) # Add together vectors for totals red_wine_total = red_wine_dark + red_wine_light

Egy vektorban az első pozíciót x-nek, a másodikat pedig y-nak hívjuk, a képlet így néz ki: object_name = vector(x,y). Ez azért fontos, hogy a read() függvénnyel megszerzett információkkal töltsük fel a vektorokat.

Az arany X jelzéseken használd a write() függvényt az egyes vektorcsoportok összegének felírásához. Például a vörös szőnyeg X jelzéseknél így van írva:

await player.write( "There is a total of %s pounds on the left barrels and %s pounds on the right barrels" % (red_wine_total.x, red_wine_total.y)

Ne felejtsd el a .x és .y hozzáadását az összeg végéhez, hogy azonosítsd a vektorok értékeit.

Minden színes szőnyegcsoport esetén eltérő típusú bort szűrnek. A fent említett red szőnyegnél vörös bort, a yellow szőnyegeknél pezsgőbort, a green szőnyegeknél fehér bort, és az orange szőnyegeknél narancssárga bort szűrnek.

Amint az összes világos és sötét X jelzést öblítették a water() függvénnyel, és az arany X jelzéseken felírták az összesített értékeket, teljesítetted a szintet.

Kódkönyv