Direkt zum Inhalt
Zum Ende des Inhalts
Zur Service-Navigation
Zur Suche
Zur Hauptnavigation
Zur Anmeldung/Registrierung

Homepage > Aktivitäten > Informatik > Programmieren > 1, 2, 3 ... > Klasse 4 bis 6 > 8: Weltraummission mit Scratch > Hindernisse/Punktestand

8.6: Hindernisse umschiffen und Anzahl der Leben verwalten

Autor/inn/en:
Publikation: 2.10.2016
Lernstufe: 3
Übersicht: Die Schüler erweitern ihr Programm. Sie bauen Hindernisse ein (= neue Fi­guren). Wenn man gegen diese Hindernisse stößt, verliert man ein Le­ben (neue Variable "Leben"). Sie verwenden Tests, Schleifen, Variablen und vertiefen den Begriff "Ereignis".
Angestrebte Kenntnisse:
  • Maschinen:
    • Maschinen führen Befehle (Anweisungen) aus.
    • Mit mehreren einfachen Anweisungen kann man eine komplexe Aufga­be lösen.
  • Algorithmen:
    • Ein Algorithmus ist eine Verarbeitungsvorschrift zur Lösung eines Pro­blems.
    • Mit einer Schleife im Programm kann man eine Anweisung wiederholen.
    • Eine Endlosschleife wird unendlich oft wiederholt.
    • Eine iterative Schleife wird eine bestimmte Anzahl von Malen wiederholt.
  • Programmiersprachen:
    • Mit einer Programmiersprache kann man einer Maschine Anweisungen geben.
    • Scratch hat eine grafische Oberfläche und verwendet eine einfache Spra­che.
    • Ein Programm ist ein Algorithmus, der in einer Programmiersprache formuliert wurde.
    • Bei der ereignisorientierten Programmierung werden Befehle erst nach Ein­treten eines bestimmten Ereignisses ausgeführt.
    • Bei der sequentiellen Programmierung werden die Befehle einer nach dem anderen ausgeführt.
    • Das Ergebnis eines Programms ist reproduzierbar. Wenn sich weder die Befehle noch die in das Programm eingehenden Daten ändern, kommt immer das Gleiche heraus.
Dauer: ca. eine Stunde
Material: Für jede Zweiergruppe:
  • ein Computer, auf dem Scratch installiert ist, und das in der vorherigen Stunde abgespeicherte Programm
  • neue Figuren (Herunterladen mit einem Klick der rechten Maustaste auf das jeweilige Bild):
    Lava   Düne
Herkunft: La main à la pâte, Paris

Pädagogische Anmerkung

Es kann hilfreich sein, den Schülern zwischendurch immer mal das endgül­tige Spiel vorzuführen. Das erhöht die Motivation und erinnert die Schüler daran, was noch programmiert werden muss. Sie sollen nicht nachlesen, was im Programm steht, sondern lediglich sehen, wie das Spiel funktioniert.

Um das Spiel noch etwas spannender zu machen, sollen jetzt Hindernisse ein­gebaut werden: ein Lavasee und eine Sanddüne. Außerdem soll eine weitere Variable eingefügt werden: eine Anzahl "Leben". Der Rover hat zu Beginn des Spiels drei Leben. Wenn er ein Hindernis berührt, verliert er ein Leben und muss zurück zur Basisstation. Das Spiel endet, wenn die Anzahl Leben null be­trägt.

Grüner PunktAufgabe 1: Neue Figuren hinzufügen (5 min)

Genauso wie sie es schon mit dem Eis und der Pflanze gemacht haben, laden die Schüler wieder drei neue Figuren hoch: die Basisstation, den Lavasee und die Düne. Alle Figuren werden auf eine Anfangsposition gesetzt (Initialisie­rung). Wenn sie die Basisstation in die Mitte des Bühnenbilds platzieren, sollten sie den Rover vielleicht etwas verschieben (damit beide zu Spielbeginn nicht übereinander liegen).

Eventuell kann die Lehrerin auf die verschiedenen Ebenen der Figuren hinwei­sen. Will man zum Beispiel den Rover im Vordergrund haben (sodass er nie ver­deckt wird), kann man in der Kategorie "Aussehen" den Befehl "komme nach vorn" heraussuchen. Setzt man diesen Befehl nicht ein, ist immer diejenige Figur weiter oben, die im Figurenbereich weiter rechts steht.

Scratch-Befehl 'Komme nach vorn'

Abb. 1: Scratch-Befehl "komme nach vorn"

Grüner PunktAufgabe 2: Neue Variable "Leben" hinzufügen und ihr ein Anfangswert zuordnen (5 min)

Das Erzeugen der Variablen "Leben" erfolgt wieder analog zur Erzeugung der Va­riablen "Punkte". Zu Spielbeginn ist der Wert von "Punkte" gleich 3. Diese Initialisierung kann man zum Beispiel direkt unter der Initialisierung des Wertes für die Variable "Punkte" einfügen (Abb. 2).

Die Anfangsvariablen setzen

Abb. 2: Die Variable "Punkte" wird auf 0 und die Variable "Leben" auf 3 gesetzt.

Roter PunktAufgabe 3: Ein Leben verlieren, wenn der Rover die Lava berührt (30 min)

In der Unterrichtsstunde 8.4 (Objekte sammeln und den Punktestand verwal­ten) wurde beim Berühren des Eisbrockens oder der Pflanze die Variable "Punk­te" um 1 erhöht. Hier soll umgekehrt beim Berühren der Lava oder der Düne die Variable "Leben" um 1 kleiner werden. Wir raten, erst das Ganze für eins der Hindernisse (den Lavasee) durchzuführen, und dann für das andere Hindernis (die Düne) zu wiederholen.

Wie kann man in Scratch subtrahieren?

Die Schüler werden suchen, wie man die Anzahl der Leben um eins verkleinern kann. Man muss dafür in dem Befehl "ändere [Variable] um [--]" negative Zah­len eingeben: in unserem Fall also −1.

Skript für die Lava 1

Abb. 3: Vorläufiges Skript für die Lava: Von der Variable "Leben" wird 1 subtrahiert.

Dieses Skript hat jedoch noch einen Makel: Wenn der Rover das Hindernis be­rührt, dauert die Berührung mindestens einige Zehntel Sekunden. Während dieser ganzen Zeit verringert sich die Anzahl der Leben permanent. Man hat nach einigen Sekunden schnell −4000 Leben. Die einzige Möglichkeit, das zu ändern, besteht darin, dass man sofort Rover und Hindernis voneinander trennt.

Wie kann man den Rover an eine andere Stelle setzen?

Es gibt mindestens zwei Möglichkeiten, um den Rover an eine andere Stelle zu setzen:

Möglichkeit 1: Das bisherige Skript für die Lava wird gelöscht, es bleibt nur noch die Initialisierung der Position (Abb. 4 links). Die Schleife, die abfragt, ob Rover und Lava sich berührt haben, und dann die Anzahl der Leben verringert, wird in das Skript des Rovers kopiert. Anschließend kommt noch ein Befehl dazu, der den Rover zum Beispiel in/auf die Basisstation setzt.

Um den Rover zur Basisstation zurückkehren zu lassen, kann man ihm entwe­der befehlen, zur Position x = 0 und y = 0 zu gehen, oder man befiehlt ihm, zur Position der Figur "Basisstation" zu gehen. Die letzte Lösung hat den Vorteil, dass der Rover auch dann zur Basisstation zurückkehrt, wenn diese nicht in der Bildmitte ist.

Skript für den Rover und die Lava

Abb. 4: Skripte für die Lava (links) und den Rover (rechts)

Möglichkeit 2: Diese zweite Lösung ist eleganter und praktischer. Das vorläu­fige Skript für die Lava (Abb. 3) wird beibehalten, es kommt jedoch noch ein Befehl dazu. Es wird eine Nachricht an die Skripte der anderen Figuren ge­schickt. Im Skript des Rovers bewirkt diese Nachricht, dass er sofort zur Ba­sisstation zurückkehrt. Wie der Name einer Variablen, sollte auch die Betreff­zeile einer Nachricht sprechend sein. In unserem Beispiel lautet die Betreffzeile der Nachricht "Hindernis berührt".

Skript für den Rover und die Lava, 2. Möglichkeit

Abb. 5: Alternative Skripte für die Lava (links) und den Rover (rechts)

Das Skript der Lava schickt also eine Nachricht an die anderen Skripte. Im Skript des Rovers entspricht der Erhalt dieser Nachricht einem Ereignis, das eine Aktion auslöst (der Rover kehrt zur Basisstation zurück). Die Befehle, mit denen man eine Nachricht verschickt oder eine Aktion auslöst, wenn die Nach­richt empfangen wird, finden sich in der Kategorie "Ereignisse".

Pädagogische Anmerkungen

  • Eine weitere Lösung wäre, den Rover an dem Hindernis abprallen zu las­sen, um die Berührung zu unterbrechen.
  • Die zweite Lösung ist deshalb eleganter, weil es den "Ereignischarakter" des Spiels (in einem Spiel passiert etwas) betont. Jedes Mal, wenn etwas passiert, kann ein Skript eine Nachricht an eins oder mehrere andere Skripte schicken. Dem Begriff "Ereignis" sind die Schüler schon begegnet; sie kennen die Ereignisbefehle "Wenn Taste [Pfeil nach oben] gedrückt" oder "Wenn [grüne Flagge] angeklickt". Dass man in einem Programm ein Ereignis auch in einer Nachricht verschicken kann, ist für sie allerdings neu.
  • Die erste Methode hat den Vorteil, dass bisherige Programmierkennt­nisse wiederholt werden, die zweite führt etwas Neues ein: das Senden und Empfangen von Nachrichten.
  • Das Senden und Empfangen von Nachrichten wird später (erneut) ver­wendet, um das Spiel zu beenden (siehe Unterrichtsstunde 8.7).

Grüner PunktAufgabe 4: Das Gleiche für die Düne durchführen (10 min)

Die Schüler haben erfolgreich das Skript für die Lava programmiert. Jetzt müssen sie nur noch das Ganze für die Düne wiederholen. Dadurch festigen sie die hinzugewonnenen Programmierkenntnisse, insbesondere das Versenden und Empfangen von Nachrichten.

Zusammenfassung

Die Schüler vervollständigen ihre Liste mit den Scratch-Befehlen.

Das Programm, wie es zum Ende dieser Unterrichtsstunde aussehen könnte: rover-spiel-8.6.sb2 (siehe Das Rover-Spiel – die fertigen Skripte).

Letzte Aktualisierung: 21.12.2016

Allgemeine Informationen Alphabetischer Index Sitemap Häufig gestellte Fragen La main à la pâte

Anmeldung

Passwort vergessen?

Registrieren