Aus Das deutschsprachige Scratch-Wiki
(Weitergeleitet von Liste)
Listen (manchmal auch Felder, Feldvariablen oder Arrays) sind eine Art kompakte Ansammlung von Variablen. Sie wurden in Scratch 1.3 eingeführt und sind besonders nützlich für Programme, die eine große, unbestimmte Anzahl an Werten abspeichern und dann wiederverwenden müssen. Listen können wie Variablen global und lokal, d. h. nur auf ein bestimmtes Objekt bezogen, definiert werden. Mit Listen können auch komplexere Datenstrukturen realisiert werden.
Blöcke und Geschichte
→ Hauptartikel: Listen-Blöcke
Es gibt insgesamt 12 verschiedenartige Blöcke für Listen. Sie sind sind unter Daten zu finden. In den Vorabversionen von Scratch 2.0 waren Cloud-Listen möglich. Da sie jedoch ein zu hohes Sicherheitsrisiko darstellen, wurden sie vorerst wieder entfernt. Allerdings bleiben zwei in Scratch 2.0 eingeführte Neuerungen: die Möglichkeit, Listen zu zeigen und zu verstecken.
Bei dem folgenden Projekt handelt es sich um eine Simulation, die die Funktionsweise der Listen in Scratch nachstellt. Wenn du dir noch nicht ganz sicher bist, wie das mit jedem Block genau funktioniert, kannst du hier ganz einfach herumprobieren. Die Katze wird dir dabei helfen.
Schau' dir dieses Projekt auf der Scratch-Webseite an...
Welche Vorteile bringt mir eine Liste im Gegensatz zu Variablen?
- Listen können 200.000 Elemente fassen
- Listen haben eine feste Reihenfolge an Elementen
- Listen können als .txt Datei exportiert und importiert werden
Anwendungsbeispiele
1. Auflistungen
Durch die gut strukturierte Reihenfolge der Elemente und der Möglichkeit, Listen durch eine Checkbox anzeigen zu lassen, kann man Listen gut für Auflistungen, wie beispielsweise eine Highscoreliste verwenden.
2. Speicherung von "Items"
In Adventure Spielen muss man oft irgendwelche Sachen aufsammeln. Perfekt geeignet für eine derartige Sammlung der Items stellt eine Liste an einem Bildschirmrand da.
3. Externe Speicherung von Daten
Man kann den Inhalt einer Liste per Rechtsklick auf die angezeigte Liste als .txt (Text) Datei exportieren und importieren. Man kann somit Welten als Zahlenabfolgen codieren und sie zwischen verschiedenen Fenstern und sogar Computern transportieren. Das funktioniert allerdings nur offline.
4. Speicherung von Daten mit dem Projekt
Mit der Möglichkeit, Projekte online zu speichern und zu editieren, kann man man auch Informationen in Listen online abspeichern. Wenn man die Inhalte von Listen während des Programmlaufs verändert hat und diesen neuen Stand festhalten will, braucht man die Liste nicht wie oben beschrieben als Textdatei zu exportieren, sondern kann einfach in den Editiermodus wechseln und das Projekt einschließlich der Listeninhalte dann speichern. Interessant kann das z. B. für Vokabellernprogramme sein, wenn man Lernstatus und letzen Aufruf von Vokabeln in Listen festhalten will.
Im Gegensatz zu einer Programmänderung registriert Scratch die Änderung eines Listeninhalts nicht automatisch. Man muss das Speichern also manuell durchführen.
5. Speicherplatz für kompliziertere Aufbau- und Abbauvorgänge
Erfahrenere Scratcher benutzen Listen auch gerne als eine Art Speicherplatz für Informationen. Das wäre im Gegensatz zu Punkt 1 auch mit Variablen einigermaßen möglich, dafür allerdings deutlich umständlicher, unübersichtlicher und würde die Anzahl der Speicherungen, da das Programm keine Variablen automatisch erstellen kann, begrenzen. Dazu muss die Liste natürlich nicht angezeigt sein. Um die Liste auszulesen braucht man meist die String Blöcke aus der Kategorie "Operatoren".
6. Anzeige für TBGs und Kommandozeilenprogramme
Beliebt sind Listen auch als schnelle und praktische Möglichkeit um TBGs ("Text Based Games") und Kommandozeilensysteme zu machen. Eng damit verbunden sind die Frage- und String Blöcke.
7. Listenspiele
Mit der Zeit haben sich die vom Aussehen und dem Gameplay her sehr experimentellen Listenspiele zu einer kleinen Subkultur entwickelt. Bei derartigen Projekten werden Listen von ihren eigentlichen Funktionen zweckentfremdet und dann für eine Sache verwendet, die zwar meist mit anderen Mitteln einfacher herzustellen währe, dafür aber origineller ist. Ein Beispiel dafür findet sich unten.
Cloud-Listen
Es ist möglich, dass Cloud-Listen irgendwann wieder eingeführt werden. Mit diesen würde man die Möglichkeit haben, Informationen persistent im Internet (der Cloud) abzuspeichern.
Cloud-Listen emulieren
Man kann diese Cloud-Listen auch mit Cloud-Variablen emulieren. Hier ist ein Beispiel für ein Highscore-System.
Wenn die grüne Flagge angeklickt setze[Zwischenablage 1 v] auf[0] setze[Zwischenablage 2 v] auf[0] wiederhole fortlaufend falls <(dein Score) > (☁ Score 1)>, dann setze[Zwischenablage 1 v] auf (☁ Score 1) setze[☁ Score 1 v] auf (dein Score) setze[Zwischenablage 2 v] auf (☁ Score 2) setze[☁ Score 2 v] auf (Zwischenablage 1) setze[☁ Score 3 v] auf (Zwischenablage 2) ende ende Wenn die grüne Flagge angeklickt setze[Zwischenablage 1 v] auf[0] setze[Zwischenablage 2 v] auf[0] wiederhole fortlaufend falls <<(dein Score) > (☁ Score 2)> und <(dein Score) < (☁ Score 1)>>, dann setze[Zwischenablage 1 v] auf (☁ Score 2) setze[☁ Score 2 v] auf (dein Score) setze[Zwischenablage 2 v] auf (☁ Score 3) setze[☁ Score 3 v] auf (Zwischenablage 1) ende ende Wenn die grüne Flagge angeklickt setze[Zwischenablage 1 v] auf[0] setze[Zwischenablage 2 v] auf[0] wiederhole fortlaufend falls <<(dein Score) < (☁ Score 2)> und <<(dein Score) < (☁ Score 1)> und <(dein Score) > (☁ Score 3)>>>, dann setze[☁ Score 3 v] auf (dein Score) ende ende
Arrays
Die Entsprechung zu einer Liste in anderen Programmiersprachen nennt sich "Array". Sie ähnelt der Liste zwar, bietet aber grundsätzlich noch die Funktion der Mehrdimensionalität. Das heißt konkret, dass man bestimmte Einträge den anderen zuordnen kann. Visualisiert sähe das dann so ähnlich aus, wie eine Tabelle. Mann hat die Funktion bei den normalen, eindimensionalen Listen nicht, kann aber die Funktionsweise eines Arrays durch Slashes (Querstriche, also "/") als Trennungszeichen (wie oben im Bild mit der Verrechnungsliste) nachstellen, was dem Programmierer einige Vorteile bringt.
Listen exportieren und importieren
Klickt man auf die auf der Bühne angezeigte Liste und hält dabei die Shift-Taste gedrückt, so öffnet sich ein Menü aus dem man wählen kann, ob man Listen importieren oder exportieren möchte. Beim Exportieren werden die Elemente der Liste in einer .txt-Datei auf dem Computer gespeichert, wobei nach jedem Element eine neue Zeile begonnen wird. Beim Importieren überschreiben Dateien, die dem gleichen Schema folgen (neue Zeile pro Listenelement), vorzugsweise im .txt-Format, die Elemente der vorhandenen Liste.
Exportierte Listen verwenden das UNICODE-Format (UTF-8). Wenn man die Listen nach Export weiterverarbeiten will, z. B. in einer Tabellenkalkulation, muss man diese Einstellung beim Import anwenden, sonst kommen z. B. statt der deutschen Umlaute irgendwelche Ersatzzeichen.
Projekte, die Listen verwenden (Englisch)
Eine kleine Auflistung von Projekten, die mit der Listenfunktion arbeiten. Die Projektart beziehungsweise die Nutzung der Listenfunktion wird hier in Klammern angegeben. Dass zwei der Projekte "Adventure" heißen, ist hier reiner Zufall.
Listen Tutorials und Hilfen (Englisch)
Introvideos
Siehe auch
[wiki=de:Listen]Listen[/wiki]