Instanzen und Listen

Nun wollen wir einige Reihen von Smileys erstellen. Um uns die Arbeit zu ersparen, jede einzelne Instanz einer Variablen zuzuweisen, verwenden wir eine Liste. Zunächst erstellen wir die Liste Smileys und befüllen diese mit Hilfe einer for-Schleife.

from Smiley import Smiley

schnee = []
    for s in range(100):
        schnee.append(Smiley('#f5f242'))

Hier passiert Folgendes: Zunächst wird eine Variable schnee als Liste initialisiert. Die Liste ist zunächst leer und wird durch eine Schleife mit Smiley-Objekten befüllt.

“Alles in Python ist ein Objekt.”, so auch die Liste. Das heißt: Wenn die Variable schnee initialisiert wird, wird ein Objekt der Klasse list erzeugt. Sie hat auch Eigenschaften und Methoden, genau wie die Klasse Smiley.

Eine dieser Methoden ist append(), was soviel heißt wie “dranhängen”. Sie können diese und andere Methoden und Eigenschaften in der Referenz zu list nachschlagen.

Diese Art, eine Liste zu befüllen, ist nicht sehr pythonic. Eleganter geht es mit einer list comprehension. Es passiert das gleiche, die Schreibweise ist aber komprimierter.

from Smiley import Smiley

Smileys = [Smiley('#f5f242') for x in range (20)]

Nun ist es uns möglich, mittels einer weiteren Schleife auf die Methoden jeder einzelnen Instanz der Klasse zuzugreifen und diese auszuführen. In diesem Fall greifen wir auf die Methode paint() zu und übergeben jeder Instanz in der Liste Smileys andere Parameter.

def draw():

    for Smiley in Smileys:
            for y in range(10,200):
                if y % 50 ==0:
                    for x in range(10,200):
                        if x % 20 ==0:
                            Smiley.paint(x,y,20)

In diesem Beispiel haben wir es gleich mit mehreren Schleifen zu tun: Die äußere Schleife ist die Endlosschleife draw(), die ständig unsere Leinwand aktualisiert. Die zweite Schleife iteriert über die Liste unserer Smiley-Objekte. D.h., dass bei jedem Durchgang der draw() alle Smiley einmal angefasst werden können. Was wir dann mit ihnen machen, ist Inhalt dieser zweiten Schleife.

So sorgt die dritte Schleife hier dafür, dass ein Wert für die y-Koordinate zwischen 10 und 200 gefunden wird, der durch 50 teilbar ist. Ist dieser gefunden, wir noch ein Wert für die x-Koordinate gesucht, der durch 20 teilbar ist. Das Ergebnis sieht so aus:

Mit diesem Wissen ist es auch möglich, Bewegungen der Smiley herzustellen. Wie könnte das gehen?

Verstanden
Um die Inhalte auf dieser Website optimal für Sie anbieten zu können, verwenden wir Cookies. Mehr erfahren