Title: Exkurs: Listen in miniworlds

In miniworlds sind Listen besonders nützlich, sobald mehrere Dinge gleichartig
behandelt werden sollen: mehrere Münzen, mehrere Gegner, mehrere Texte oder
mehrere Inventarplätze.

### Mehrere Positionen speichern

Statt für jede Münze eigene Variablen anzulegen, kann eine Liste alle
Startpositionen enthalten.

import miniworlds

world = miniworlds.World(560, 300)

for position in muenzen_positionen:
muenze = miniworlds.Circle(position, 18)

world.run()

| Listeneintrag | Bedeutung im Spiel |

Die Schleife erzeugt aus jedem Eintrag ein sichtbares Objekt. Wenn du eine
weitere Position in die Liste schreibst, entsteht automatisch eine weitere
Münze.

### Actors in einer Liste sammeln

Manchmal möchtest du später wieder auf alle erzeugten Objekte zugreifen. Dann
speicherst du die Actors selbst in einer Liste.

import miniworlds

world = miniworlds.World(560, 300)

gegner = []

alien = miniworlds.Actor((x, 140))
gegner.append(alien)

@world.register
def act(self):
for alien in gegner:
alien.y = alien.y + 1

world.run()

gegner = [alien1, alien2, alien3, alien4]
v v v v
alle werden gemeinsam verschoben

Die erste Schleife baut die Liste auf. Die zweite Schleife verändert danach
alle gespeicherten Actors.

### Inventar und Anzeige trennen

Eine Liste kann den Spielzustand speichern. Die miniworlds-Objekte zeigen
diesen Zustand nur an.

import miniworlds

world = miniworlds.World(560, 280)

inventar = ["Holz", "Stein", "Fackel"]

for gegenstand in inventar:
feld = miniworlds.Actor((x, 170))
feld.origin = "topleft" # Dies bedeutet: als feld.position Wert wird die linke obere Ecke gewählt.

text = miniworlds.Text((0,0), gegenstand)
text.origin = "topleft"
text.font_size = 18

world.run()