Coding for KidsCoding for Kids
Niveluri CreativeProvocăriGhid pentru Profesori
Votează pentru funcții
Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel

Clase Avansate
Supraincarcare operatori

Obiectiv

Determină cât vin este clarificat folosind vectori și Supraîncărcarea Operatorilor.

După ce vinul a fost stoars, trebuie să fie filtrat și clarificat, există mai multe butoaie care sunt filtrate și întreaga cantitate trebuie clătită. Este important să se determine cât vin este produs pentru ca butoaiele să poată fi sigilate și maturate.

Pentru a face acest lucru, trebuie să creați vectori și să îi adunați, acestea fiind similare cu listele, dar nu la fel de flexibile, deși mai eficiente din punct de vedere al memoriei. De obicei, sunt folosiți pentru gestionarea coordonatelor, în acest caz folosindu-i ca variabile care dețin mai multe valori. Adunarea vectorilor se face folosind Supraîncărcarea Operatorilor, care extinde funcționalitatea obiectelor de clasă pentru a folosi operatorii cu ele, la fel ca și cu valorile normale.

Pentru început, mergi și colectează cutiile metalice pentru apă situate în partea de sus a camerei, acestea vor fi folosite pentru a clăti vinul filtrat în butoaie. După ce le-ai colectat, mergi spre semnul X întunecat de pe covorul roșu, orientează-te către butoi și începe să vectorizezi conținutul fiecărui butoi.

Semnele X sunt aranjate în seturi de trei (3) pentru fiecare culoare a covorului: un semn X auriu, un semn X deschis și un semn X întunecat. La toate semnele X întunecate și deschise, folosește funcția water() pentru a ajuta la clătirea butoaielor. De asemenea, la toate semnele X întunecate și deschise, folosește funcția read() pentru a identifica cât vin este procesat în acea coloană de butoaie. La semnul X auriu, folosești funcția write() pentru a nota totalul sumat al cantităților.

În editorul de cod există o clasă numită vector, aceasta fiind folosită pentru a putea crea un vector, dar și pentru a le aduna. Creează obiecte vector pentru a stoca datele identificate la semnele X deschise și întunecate, de exemplu, pe covoarele roșii se filtrează vin roșu:

# 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

Într-un vector, prima poziție este numită x iar a doua poziție este y, formula fiind următoarea: object_name = vector(x,y). Acest lucru este relevant pentru popularea vectorilor cu informațiile obținute din funcția read().

La semnele X auriu folosește funcția write() pentru a nota totalul pentru fiecare set de vectori, de exemplu, în cazul semnelor X de pe covorul roșu este scris astfel:

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)

Nu uita să adaugi .x și .y la finalul totalului pentru a identifica valorile fiecărui vector.

Pentru fiecare set de covoare colorate există un tip diferit de vin care este filtrat. Pe covorul menționat anterior roșu, se filtrează red_wine; pe covoarele galbene, se filtrează sparkling_wine; pe covoarele verzi, se filtrează white_wine; iar pe covoarele portocalii, se filtrează orange_wine.

Odată ce toate semnele X deschise și întunecate au fost clătite cu funcția water() și toate semnele de pe semnele X auriu au totalurile notate, vei fi terminat nivelul.

Carte de Cod