Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Fortgeschrittene Klassen
Operatorüberladung

Ziel

Ermittle, wie viel Wein geklärt wird, indem du Vektoren und Operatorüberladung verwendest.

Nachdem der Wein gepresst wurde, muss er gefiltert und geklärt werden. Mehrere Fässer werden gefiltert und das Ganze muss gespült werden. Es ist wichtig, zu erfassen, wie viel Wein produziert wird, damit die Fässer abgedichtet und gereift werden können.

Um dies zu tun, musst du Vektoren erstellen und sie zusammen addieren. Diese ähneln Listen, sind aber nicht so flexibel und dafür speichereffizienter. Sie werden normalerweise zur Handhabung von Koordinaten verwendet; in diesem Fall werden sie wie Variablen genutzt, die mehr als einen Wert speichern. Das Addieren der Vektoren erfolgt durch die Verwendung von Operatorüberladung, wodurch die Funktionalität von Klassenobjekten erweitert wird, sodass man mit ihnen Operatoren genauso benutzen kann wie mit normalen Werten.

Zuerst geh und sammle die metallenen Wasserdosen, die sich oben im Raum befinden. Diese werden verwendet, um den gefilterten Wein in den Fässern zu spülen. Sobald du sie gesammelt hast, gehe zum dunklen X-Marker auf dem roten Teppich, richte dich am Fass aus und beginne, den Inhalt jedes Fasses zu vektorisieren.

Die X-Markierungen sind in Dreiergruppen für jeden farbigen Teppich angeordnet: ein goldenes X, ein helles X und ein dunkles X. Bei allen dunklen und hellen X-Markierungen benutze die water()-Funktion, um die Fässer zu spülen. Außerdem verwendest du bei allen dunklen und hellen X-Markierungen die read()-Funktion, um festzustellen, wie viel Wein in jener Fassreihe verarbeitet wird. Beim goldenen X-Markierung benutzt du die write()-Funktion, um die Gesamtsumme der Beträge zu notieren.

Im Code-Editor gibt es eine Klasse namens vector, die dir nicht nur ermöglicht, einen Vektor zu erstellen, sondern auch Vektoren zusammen zu addieren. Erstelle vector-Objekte, um die an den hellen und dunklen X-Markierungen erfassten Daten zu speichern. Zum Beispiel wird auf roten Teppichen Rotwein gefiltert:

# 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

In einem Vektor wird die erste Position als x und die zweite Position als y bezeichnet, die Formel lautet folgendermaßen: object_name = vector(x,y). Dies ist wichtig, um die Vektoren mit den von der read()-Funktion gewonnenen Informationen zu befüllen.

Auf den goldenen X-Markierungen verwendest du die write()-Funktion, um die Summe jeder Vektorgruppe zu notieren. Im Fall der roten Teppich-X-Markierungen wird es beispielsweise wie folgt geschrieben:

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)

Denke daran, am Ende der Summen .x und .y hinzuzufügen, um die Werte jedes Vektors zu identifizieren.

Für jede Gruppe farbiger Teppiche wird eine andere Art von Wein gefiltert. Auf dem bereits erwähnten red-Teppich wird red_wine gefiltert; auf den yellow-Teppichen wird sparkling_wine gefiltert; auf den green-Teppichen wird white_wine gefiltert; und auf den orange-Teppichen wird orange_wine gefiltert.

Sobald alle hellen und dunklen X-Markierungen mit der water()-Funktion gespült wurden und alle goldenen X-Markierungen die Summen notiert haben, hast du das Level abgeschlossen.

Codebuch