Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå

Avancerade klasser
Operatoröverlagring

Mål

Sammanställ hur mycket vin som renas genom att använda vektorer och operatoröverlagring.

Efter att vinet pressats måste det filtreras och klaras. Det finns flera tunnor som filtreras och hela partiet måste sköljas. Det är viktigt att sammanställa hur mycket vin som produceras så att tunnorna kan förseglas och lagras.

För att göra detta behöver du skapa vektorer och addera dem tillsammans; dessa liknar listor men är inte lika flexibla, dock mer minnes-effektiva. De används vanligtvis för att hantera koordinater, i detta fall kommer vi att använda dem som variabler som håller mer än ett värde. Att addera vektorerna görs genom att använda Operatoröverlagring, vilket utökar funktionaliteten hos klassobjekt så att man kan använda operatorer med dem som man skulle göra med vanliga värden.

För att komma igång, gå och samla in de metallvattenburkar som finns högst upp i rummet; dessa kommer att användas för att hjälpa till att skölja vinet som filtreras i tunnorna. När de har samlats, gå mot den mörka X-markeringen över den röda mattan, rikta tunnan och börja vektorisera innehållet i varje tunna.

X-markeringarna är arrangerade i grupper om tre (3) för varje färgad matta: en guldfärgad X, en ljus X och en mörk X. På alla mörka och ljusa X-markeringar använd funktionen water() för att hjälpa till att skölja tunnorna. Även på alla mörka och ljusa X-markeringar, använd funktionen read() för att identifiera hur mycket vin som behandlas i den kolumnen med tunnor. På den guldfärgade X-markeringen använder du funktionen write() för att notera totalbeloppet.

I kodredigeraren finns en klass som heter vector, denna används så att du inte bara kan skapa en vektor, utan även addera dem tillsammans. Skapa vector-objekt för att lagra data som identifierats på ljusa och mörka X-markeringar, till exempel, på röda mattor filtreras rött vin:

# 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

I en vektor kallas den första positionen för x och den andra positionen för y, formeln är som följer: object_name = vector(x,y). Detta är relevant för att fylla vektorerna med informationen som erhållits från funktionen read().

På de guldfärgade X-markeringarna använd funktionen write() för att notera totalen för varje uppsättning vektorer, till exempel, i fallet med de röda mattornas X-markeringar skrivs det så här:

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)

Kom ihåg att lägga till .x och .y i slutet av totalen för att identifiera värdena i varje vektor.

För varje uppsättning färgade mattor filtreras en annan typ av vin. På den tidigare nämnda röda mattan filtreras red_wine; på de gula mattorna filtreras sparkling_wine; på de gröna mattorna filtreras white_wine; och på de orangea mattorna filtreras orange_wine.

När alla ljusa och mörka X-markeringar har sköljts med funktionen water() och alla skyltar på de guldfärgade X-markeringarna har totalerna noterats, har du slutfört nivån.

Kodbok