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 > Spiel spannender machen

8.8: Das Rover-Spiel spannender machen

Autor/inn/en:
Publikation: 2.10.2016
Lernstufe: 3
Übersicht: Das Rover-Spiel wird zu Ende programmiert. Die Schüler fügen Ele­mente hinzu, um das Spiel spannender zu machen, zum Beispiel einen Count­down und einen Wirbelsturm, der sich zufallsbedingt über die Spiel­fläche bewegt und immer schneller wird.
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: zwei bis drei Stunden
Material: Für jede Zweiergruppe:
  • ein Computer, auf dem Scratch installiert ist, und das in der vorherigen Stunde abgespeicherte Programm
  • neue Figur (Herunterladen mit einem Klick der rechten Maustaste auf das jeweilige Bild):
    Wirbelsturm
Herkunft: La main à la pâte, Paris

Ausgangssituation

Die Schüler werden schnell bemerken, dass das Spiel zwar ganz nett ist, aber keine größeren Herausforderungen bietet. Wenn man gut aufpasst, dass man die Hindernisse umschifft, kann das Spiel endlos weitergehen. Die Klasse über­legt sich also, wie man das Spiel schwieriger machen könnte.

Pädagogische Anmerkungen

  • Die Lehrerin lässt die ganze Klasse diskutieren, welche Möglichkeiten es gäbe. Es müssen auch nicht alle Gruppen das Gleiche pro­grammieren.
  • Die Lehrerin sollte darauf achten, dass die einzelnen Gruppen klare Vor­stellungen und Ideen haben, wie sie ihr Vorhaben umsetzen wollen bzw. können. Manche Ideen mögen sehr reizvoll erscheinen, man sollte aber auch ihre Machbarkeit im Blick haben.

Wir beschreiben im Folgenden die zwei bereits weiter oben genannten Vor­schlä­ge. Wir werden auch noch andere Möglichkeiten aufzeigen, das Spiel zu erweitern – nicht unbedingt, um es schwieriger zu machen, sondern zum Teil auch, um Bugs im Programm auszumerzen.

Die folgenden Aufgaben sind alle unabhängig voneinander und sie haben sehr unterschiedliche Schwierigkeitsgrade. Wir raten, wenigstens die Aufgabe 2 oder 3 durchzuführen, um das Spiel spielenswert zu machen.

Blauer PunktAufgabe 1: Ein Countdown zu Spielbeginn (15 min)

Man könnte das Spiel erst nach einem Countdown starten lassen: 5, 4, 3, 2, 1, los! Das geht ganz einfach, siehe Abb. 1.

Skript für ein Countdown

Abb. 1: Skript für einen Countdown

Oder eleganter, mit einer neuen Variablen und einer Schleife:

Skript für ein Countdown mit Schleife

Abb. 2: Countdown mit Schleife

Je nach Niveau der Schüler können sie die einfache Variante programmieren oder die kompliziertere mit einer Variablen und einer Schleife. Beide Skripte führen zum gleichen Ergebnis. Für die kompliziertere Variante könnte die Leh­rerin folgende bewährte Methode wählen: Sie könnte den Schülern eine Datei geben, in der alle benötigten Elemente bereits in den Skriptbereich gezogen wurden, ungeordnet und nicht miteinander ver­knüpft. Die Schüler müssen dann "nur" noch alles richtig ordnen und verbinden.

Blauer PunktAufgabe 2: Die Spieldauer begrenzen (15 min)

Pädagogische Anmerkungen

  • Diese Aufgabe ähnelt der Aufgabe 1, aber diesmal muss unbedingt die komplexere Variante gewählt werden (mit Variable und Schleife). Einen Countdown, der mehrere Minuten lang die Sekunden rückwärts zählt, kann man auf keinen Fall ohne Schleife programmieren (man bräuchte pro Sekunde eine Programmierzeile (siehe Abb. 1).
  • Wenn die Schüler bereits einen Countdown programmiert haben (siehe Aufgabe 1), werden sie auch diese Aufgabe leicht bewältigen. Wenn sie die erste Aufgabe nicht gemacht haben, werden sie wahrscheinlich ein paar Hilfestellungen brauchen.
  • In dieser Aufgabe werden sich die Schüler erneut mit Variablen, Tests, Schleifen und logischen Operatoren befassen.

Die Spielzeit zu begrenzen, ist eine sehr einfache Methode, das Spiel spannen­der zu machen. Man muss dazu nur eine Variable "Zeit" erzeugen, ihr einen Anfangswert geben, und diesen Wert mit der Zeit kontinuierlich kleiner werden lassen.

Das Programm endet, entweder wenn die Variable "Zeit" null ist oder wenn die Variable "Leben" null ist. Ein Skript, das dieses bewirkt, ist in Abb. 3 gezeigt. Die Zeit beträgt zu Beginn 60 und wird jede Sekunde um 1 kleiner. Die Spiel­dauer beträgt in diesem Fall also eine Minute.

Die Spieldauer begrenzen

Abb. 3: Die Spieldauer begrenzen

Roter PunktAufgabe 3: Einen Wirbelsturm hinzufügen, der sich zufalls­bedingt fortbewegt (15 min)

Wie man eine Figur hochlädt und sie auf eine Anfangsposition setzt, wissen die Schüler inzwischen sehr gut. Man könnte den Wirbelsturm zum Beispiel unten links starten lassen (x = −230, y = −170).

Anschließend müssen die Schüler einen Weg finden, wie man die Position des Wirbelsturms auf zufällige Weise verändert. Wenn man eine sprunghafte Bewe­gung zulässt, muss man lediglich die Werte von x und y ändern. Es sieht aber natürlich realistischer aus, wenn man sieht, wie sich der Wirbelsturm von einem Ort zum anderen bewegt. Der passende Befehl dafür ist: "gleite in [--] Sek. zu x: [--] y: [--]" aus der Kategorie "Bewegung".

Da die neue Position des Wirbelsturms eine Zufallsposition sein soll, ist der end­gültige Befehl derjenige aus Abb. 4.

Zu einer Zufallsposition gehen

Abb. 4: Zu einer Zufallsposition gehen

Die Schüler können es selbst ausprobieren: Wenn sie mehrmals hintereinander auf diesen Befehl klicken, wandert der Wirbelsturm jedes Mal an einen anderen Ort. Die Bewegung (von einem Ort zum nächsten) erfolgt immer in einer Se­kun­de. Wenn der neue Ort also in der Nähe liegt, wird die Bewegung langsam sein, ist er weiter entfernt, wird die Bewegung schneller sein.

Jetzt muss dieser Befehl noch in das Skript für den Wirbelsturm integriert wer­den (siehe Abb. 5).

Skript für die Bewegung des Wirbelsturms

Abb. 5: Skript für die Bewegung des Wirbelsturms

Die Schüler sollten natürlich nicht das Wichtigste vergessen: Wenn der Rover vom Wirbelsturm berührt wird, ist das Spiel zu Ende. Dazu müssen im Skript­be­reich des Wirbelsturms noch zwei kleine Skripte hinzugefügt werden (Abb. 6).

Wenn der Rover den Wirbelsturm berührt

Abb. 6: Wenn der Rover vom Wirbelsturm berührt wird, ist das Spiel zu Ende.

Blauer PunktAufgabe 4: Den Wirbelsturm größer werden lassen (15 min)

Um das Spiel noch schwieriger zu machen, kann man den Wirbelsturm, jedes Mal wenn ein Objekt (Eis oder Pflanze) eingesammelt wurde, größer werden lassen. Inzwischen sollten die Schüler so erfahren sein, dass sie diese Aufgabe mehr oder weniger allein meistern können.

In den Skripten für das Eis und die Pflanze muss eine Nachricht versandt wer­den, sobald eines dieser beiden Objekte berührt wurde.

Punkte sammeln, wenn man ein Objekt berührt

Abb. 7: Punkte sammeln, wenn man ein Objekt berührt (einsammelt).

Im Skript des Wirbelsturms muss die Größe der Figur (des Wirbelsturms) ver­grö­ßert werden – und zwar jedes Mal, wenn die Nachricht "Objekt eingesam­melt" empfangen wird. Dafür gibt es in der Kategorie "Aussehen" den Befehl "ändere Größe um [--]".

Die Größe des Wirbelsturms ändern

Abb. 8: Die Größe des Wirbelsturms wird geändert, wenn ein Objekt eingesammelt wurde.

Da wir nun die Größe des Wirbelsturms im Laufe des Programms ändern, müs­sen wir daran denken, diese Größe am Anfang des Programms zu initialisieren. Dies geschieht mit dem Befehl "setze Größe auf [100]%" aus der Kategorie "Aussehen".

Das Programm könnte in diesem Stadium folgendermaßen aussehen:
rover-spiel-8.8a.sb2 (siehe Das Rover-Spiel – die fertigen Skripte).

Schwarzer PunktAufgabe 5: Den Wirbelsturm immer schneller werden lassen (20 min)

Diese Aufgabe ist sehr schwierig, eher etwas für die Sekundarstufe I. Es gibt allerdings auch begabte Fünft- oder Sechstklässler, die über jede Herausfor­derung froh sind. Diese Aufgabe dürfte ganz nach ihrem Geschmack sein.

Der Wirbelsturm soll jetzt immer schneller werden, wenn eine Objekt (Eis oder Pflanze) eingesammelt wurde. Um den Wirbelsturm zu beschleunigen, muss zunächst eine Variable "Geschwindigkeit_Wirbelsturm" erzeugt werden. Am Anfang ist der Wert dieser Variablen 1 (sie kann an der gleichen Stelle initia­lisiert werden wie die anderen Variablen). Dann wird die Geschwindigkeit jedes Mal um 10% erhöht, wenn ein Objekt eingesammelt wird. Kleiner Trick: Eine Erhöhung um 10% entspricht einer Multiplikation mit 1,1. Abb. 9 zeigt das neue Skript für den Wirbelsturm.

Die Geschwindigkeit des Wirbelsturms ändern

Abb. 9: Die Geschwindigkeit des Wirbelsturms ändert sich.

Die Geschwindigkeit steht in dem Befehl "gleite in [--] zu ...", da sie die Zeit beeinflusst, die der Wirbelsturm braucht, um von einem Ort zum nächsten zu gleiten. Man kann die Geschwindigkeit zum Beispiel so wie in Abb. 10 in die Gleitzeit integrieren. Die Geschwindigkeit steht im Nenner und bewirkt Folgen­des: Je höher die Geschwindigkeit ist, desto kürzer ist die Zeit für das Gleiten.

Der Wirbelsturm wird immer schneller

Abb. 10: Skript, um den Wirbelsturm immer schneller werden zu lassen

Roter PunktAufgabe 6: Begrenzung der Spielfläche aufheben (20 min)

Das Spiel wäre netter, wenn der Rover nicht immer an den Rändern des Büh­nenbilds hängenbleiben würde. Man könnte ihn, wenn er rechts an den Rand stößt, am linken Rand wieder erscheinen und direkt weiterfahren lassen, und umgekehrt. Und analog für den oberen und unteren Rand des Bühnenbilds.

Wissenschaftliche Anmerkungen

  • Rollt man ein ebenes Blatt Papier zusammen, sodass sich zwei gegen­überliegende Ränder berühren, formt das Blatt einen Zylinder. Zieht man den Zylinder so auseinander, dass sich auch der obere und der untere Rand des Zylinders berühren, erhält man einen Torus (siehe Erklärung in einer Animation). Ein Torus ähnelt einem Fahrradschlauch oder einem Donut.
  • Viele Videospiele verwenden einen Torus als "Spielfläche", auch wenn ein Torus in keinster Weise der Form unseres Planeten ähnelt. Wenn man auf der Erde an den Nordpol gelangt, findet man sich nicht plötz­lich am Südpol wieder.

Die Lehrerin lässt die Schüler zunächst ein bisschen selbst probieren, sie gibt nur dann Hilfestellungen, wenn sie nicht weiterkommen. Sie kann noch einmal das Problem schildern: Wenn der x-Wert des Rovers größer wird als 240 (rech­ter Rand), dann muss sein Wert sofort −240 (linker Rand) betragen. Nach einer Weile zeigt sie den Schülern die Blöcke, die man zum Programmieren die­ses Pro­blems braucht: eine Endlosschleife, eine Abfrage "Wenn ..., dann ...", den Operator "größer als (>)", die Variable x (in der Kategorie "Bewegung" ganz unten) sowie die Anweisung zum Ändern der Variablen: "setze x auf [--]". Die Blöcke müssen wie in Abb. 11 gezeigt zusammengesetzt werden.

Die x-Koordinate ändern

Abb. 11: Die x-Koordinate ändern

Pädagogische Anmerkung

Wegen der Form der Figuren ist es besser, einen kleinen Spielraum zu las­sen, also nicht 240, sondern schon 235 als "Rand" zu nehmen.

Wenn alle verstanden haben, wie man vom rechten Rand zum linken Rand ge­langt, ist es ein Leichtes zu programmieren, wie man vom linken zum rechten Rand gelangt, vom oberen zum unteren und umgekehrt (Abb. 12).

Koordinaten ändern

Abb. 12: Die x- und y-Koordinaten ändern

Pädagogische Anmerkungen

  • Abb. 12 zeigt die Möglichkeit auf, wie man dem Skript einen Kommentar hinzufügen kann. Die Schüler sollten sich sofort daran gewöhnen, ihr Pro­gramm mit Kommentaren zu versehen. Das hilft, einen besseren Über­blick zu behalten und vor allen Dingen hilft es anderen, das Pro­gramm zu lesen (und wenn man selbst nach ein paar Monaten wieder in sein Programm schaut, ist man auch über jeden Kommentar froh).
  • In diesem Stadium, sollte der Befehl "pralle vom Rand ab" aus den Skrip­ten entfernt werden, in denen der Rover mit den Pfeiltasten ge­steuert wird.

Schwarzer PunktAufgabe 7: Verhindern, dass Objekte und Hindernisse über­einanderliegen (20 min)

Auch diese Aufgabe ist wieder sehr schwer und richtet sich eher an Schüler der Sekundarstufe I oder an Fünft- und Sechstklässler, die ihren Mitschülern voraus sind.

Wenn ein Objekt (Eis oder Pflanze) eingesammelt wurde, erscheint es an einem zufälligen anderen Ort im Bühnenbild. Es ist also möglich, dass es auf einem der Hindernisse landet (Lavasee oder Düne). Es wäre gut, wenn man das ver­hindern könnte. Es ist nicht sinnvoll, gleichzeitig einen Punkt zu gewinnen und zu verlieren.

Wie kann dieser Fall verhindert werden? Man muss eine weitere Zufallsposition suchen, so lange bis kein Hindernis mehr berührt wird. Das macht man wieder mit einer Endlosschleife. Die Schwierigkeit ist nun: Wie bringt man das Skript dazu, diese Endlosschleife auszuführen? Am Anfang berühren sich Objekte und Hindernisse ja nicht. Und man möchte nicht warten, bis ein Objekt zum ersten Mal auf einem Hindernis liegt, weil damit ja bereits der unerwünschte Fall ein­getreten wäre. Der Trick besteht darin, das Objekt mit Absicht auf das Hin­dernis zu setzen und direkt anschließend die Endlosschleife mit der Suche nach einer neuen Position einzufügen (Abb. 13). Die Vorgehensweise ist also die folgende:

  1. Das Objekt wird auf die Position eines der Hindernisse gesetzt.
  2. Dann kommt eine Endlosschleife: Solange das Objekt sich nicht an einer Position ohne Hindernis befindet, wird ihr eine weitere Zufallsposition zugewiesen.

Die Lehrerin wird die Schüler zunächst selbst ausprobieren lassen, muss ihnen dann aber wahrscheinlich die eine oder andere Hilfestellung geben. Sie kann zum Beispiel den Trick verraten, dass das Objekt auf die Position eines der Hin­dernisse gesetzt werden sollte. Wenn die Schüler nicht auf die Lösung kom­men, kann sie ihnen auch das fertige Programm geben und sie untersuchen las­sen, was das Programm macht, und warum es das macht.

Endgültiges Skript für das Eis und die Pflanze

Abb. 13: Endgültiges Skript für das Eis und die Pflanze

Zusammenfassung

Das Spiel sollte für die Schüler nun spielenswert sein. Es könnte zum Schluss so aussehen: rover-spiel.sb2 (siehe Das Rover-Spiel – die fertigen Skripte). Oder in der Variante, die das Spiel zeitlich begrenzt: rover-spiel-8.8b.sb2

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

Die Lehrerin organisiert eine Diskussionsrunde, in der die Schüler berichten, was sie im Laufe dieses Projektes gelernt haben, welches die Schwierigkeiten waren, denen sie begegnet sind, und so weiter. Sie fragt sie auch, ob sie dadurch Lust bekommen haben, weitere Scratch-Programme zu schreiben.

Letzte Aktualisierung: 17.1.2017

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

Anmeldung

Passwort vergessen?

Registrieren