Programmieren
Computerbefehle für Programme sind in Programmiersprache verfasst, damit der Computer auch versteht, was man ihm befiehlt. Mithilfe der Scriptsprache GamBu-Script machen Schüler*innen erste Schritte beim Programmieren. Sie schreiben Schleifen, Verzweigungen und Schalter für Spiele und können ihre Arbeit in der Game-Engine austesten.
Info für Lehrende
Mehr zu SchuBu+
Ablauf
Ein Computerprogramm ist eine haargenaue Anleitung für einen Computer, was er tun soll. Jedes Programm hat einen Programmstart und dann eine genaue Reihenfolge von Befehlen. Diese Computerbefehle sind in Programmiersprache verfasst, damit er auch versteht, was man ihm befiehlt.
Das folgende Programm ist in der Programmiersprache Java-Script verfasst. Sortiere die Befehle so, dass sie ein sinnvolles Programm ergeben!
Geschichte des Programmierens
Die ersten Programme waren oft eine lange Liste von Befehlen hintereinander.
Im folgenden SchuBuch-Text erfährt man mehr über die Geschichte des Programmierens:
Im SchuBuch hast du vieles darüber gelesen, wie sich das Programmieren historisch entwickelt hat. Schaffst du es, die wichtigsten Entwicklungsschritte richtig in den Zeitstrahl einzuordnen?
GamBu-Script
GamBu-Script ist die Scriptsprache, mit der man Spielelemente in der SchuBu-Game-Engine GamBu programmieren kann. Für jedes runde Element in der GamBu-Game-Engine, also , , , und , kann man ein Script schreiben, das bestimmt, was das Element kann, macht und wie es reagiert.
Alles in GamBu-Script wird kleingeschrieben.
Ein Befehl lautet zum Beispiel:
on touch () => say ("Autsch!") (In Anführungszeichen darf auch großgeschrieben werden.)
On touch () => say („Autsch!“) würde also nicht funktionieren.
Schreibe ein erstes GamBu-Script! Programmiere den Puck am Eis so, dass er automatisch durch eine Lücke findet und das Netz trifft! Verwende dazu folgenden Befehl:
Das x ist die Kraft nach links oder rechts. Bei 1 bewegt sich der Puck sehr wenig, bei 100 viel stärker in die angegebene Richtung.
Das y ist die Kraft nach oben oder unten. Bei 10 bewegt sich der Puck nach unten, bei -10 nach oben.
150 ist die maximal mögliche Kraft.
Achtung: Die Kraft bedeutet NICHT, wie viele Kästchen die Bewegung sein soll.
Zum Beispiel:
Klicke zum Programmieren auf den Bot (hier ein Puck)!
Das große Fressen
Bereitet euch auf ein Klassenturnier vor! Am Ende der nächsten Seite wird es ein Spiel geben, wo die Maus gewinnt, die am meisten Käse gefressen hat. Alle in der Klasse schreiben ein Script für eine Maus. Die Mäuse-Bots treten dann gegeneinander an. Wer am schlauesten programmiert, gewinnt das Spiel.
Die genauen Turnierregeln finden sich am Ende der nächsten Seite.
Schreibe ein erstes Script für eine der Mäuse auf dem Turnierfeld! Die programmierte Maus soll einen Käse fressen. Kopiere dein Script zum Spaß auch in das Scriptfenster der zweiten Maus, damit beide loslaufen! Im Turnier wird das Script für die zweite Maus dann von einer Klassenkollegin oder einem Klassenkollegen stammen.
Info für LehrendeSchleifen
Lange Programme sind kompliziert. Sie werden vom Menschen geschrieben, müssen aber zugleich für Computer verständlich sein. Deshalb klingen sie oft seltsam und man muss sich genau an ihre Regeln halten.
Eine praktische Anforderung an alle Programmiersprachen ist zum Beispiel:
In Programmiersprachen gibt es dafür mehrere Möglichkeiten, eine davon sind Schleifen. Dabei wird ein Teil des Programms immer wieder neu ausgeführt, also wiederholt.
In GamBu-Script werden Schleifen deshalb Wiederholung (repeat) genannt. Es gibt zwei Arten:
repeat seconds (x) [Befehl]
oder
repeat count (x) [Befehl]
Zum Beispiel könnte ein GamBu-Script so lauten:
Der Bot würde mit Kraft 100 nach rechts düsen, dann aber langsam hundertmal hintereinander ein bisschen zurück nach links fahren.
Probier es aus! Klicke auf die Maus und kopiere das Beispiel-Script in das Script-Eingabe-Fenster!
Schaffst du es, das Script so zu verändern, dass die Maus den Käse frisst? (Du musst das Spiel links oben mit dem Kreispfeil neu starten.)
Schleifen in Scratch
Info für LehrendeScratch ist eine einfache, visuelle Programmiersprache, mit der junge Menschen digitale Geschichten, Spiele und Animationen erstellen können. Der Vorteil ist, dass die Community sehr groß ist, deshalb wird man leicht Hilfe und Informationen finden. Der Nachteil gegenüber GamBu ist, dass es viel schwieriger ist, mit Scratch ein fertiges lustiges Spiel zu erfinden. Die GamBu-Game-Engine ist dagegen selbst wie ein Spiel.
Zum Vergleich sieht eine ähnliche Schleife wie die oben in Scratch so aus:
Programmiere die Maus so, dass sie automatisch zum Käse läuft und ihn frisst!
EXPERTENFRAGE: Obwohl immer eine Programmierzeile nach der anderen ausgeführt wird:
Wieso bewegt sich die Maus bei diesem Script schräg nach oben und nicht zuerst nach oben und dann nach rechts?
Wenn man warten möchte, bis ein GamBu-Script später weitergeht, könnte man diesen Trick verwenden:
Verwende Schleifen für andauernde Bewegung! Klicke auf die Maus und schreibe ein Script, dass die Maus zuerst nach oben und dann nach rechts geht, um sicher den Käse zu erreichen!
Verzweigungen
Programmierte Geräte sollen uns Arbeit abnehmen. Dazu gehört, dass sie selbst Entscheidungen treffen können.
Eine Möglichkeit in Programmiersprachen sind bedingte Anweisungen, sogenannte Verzweigungen. Der Programmablauf muss an einer solchen Stelle entscheiden, ob ein Befehl ausgeführt wird oder nicht.
In GamBu-Script schreibt man eine Verzweigung so:
if ([Bedingung erfüllt]) [Befehl] else [anderer Befehl]
zum Beispiel:
In Scratch würde der Befehl so aussehen:
In der häufig verwendeten Sprache Java-Script sieht eine Verzweigung fast gleich wie in GamBu-Script aus:
Im GamBu-Script-Beispiel oben hat der Bot „Hallo Martin!” gesagt. Bots können reden!
say ([text in Anführungszeichen])
Dieser praktische Befehl zeigt den Text, den der Bot sagen soll, in einer Sprechblase an.
Wenn man eine Sprechblase wieder wegkriegen möchte, dann lässt man den Bot einfach nichts sagen:
Schalter
In der GamBu-Game-Engine gibt es einen mächtigen Baustein für Spiele, den Schalter. Spielfiguren können Schalter ein- oder ausschalten, um Türen zu öffnen, magische Dinge zu entdecken, Überraschungen zu erleben oder Bots zu aktivieren. Schalter sind gute Bauteile für Rätsel. Auch im Turnier „Das große Fressen” spielen Schalter eine wichtige Rolle. Schalter sind nur für Spieleautoren und Spieleautorinnen zugänglich, die programmieren können:
Einen Schalter erstellt man nämlich so:
- Man platziert einen Ball dorthin, wo der Schalter im Spiel dann sein soll.
- Man klickt auf den Ball, um das Scriptfenster zu öffnen.
- In das Script schreibt man den Befehl:
Zum Erstellen eines Schalters:
und zum Auslesen, ob ein Schalter ein oder aus ist:
n ist die Nummer des Schalters. (Man sieht die Nummern aller Elemente immer, wenn man ein Scriptfenster öffnet.)
Ein Schalter wird ein- oder ausgeschaltet, wenn ihn ein Spielcharakter in GamBu berührt: Der state von einem Element kann entweder 0 oder 1 sein. 1 wenn der Schalter eingeschaltet ist und 0 wenn er ausgeschaltet ist.
EXPERTENFRAGE
Was passiert bei diesem GamBu-Script?
Programmiere die Schlangen-Leibwächter der Käferpräsidentin so, dass sie höflich und artig, genau dann, wenn die Maus den Schalter betätigt, nach oben und unten weggehen! Ziel ist es, dass die Maus den Käfer frisst.
TIPP: Beachte, dass du wiederholt den Schaltwert überprüfen musst, um zu erfahren, ob er irgendwann von der Maus gedrückt wird!
Die obere Schlange muss also in einer Schleife folgende Bedingung immer wieder überprüfen:
EXPERTENFRAGE: Noch eine schwere Expertenfrage:
Was ist der Unterschied zwischen diesen beiden Befehlen?
Wende deine neuen Fähigkeiten jetzt an!
Erstelle ein eigenes Spiel mit interessanten NPCs! Öffne die Game-Engine GamBu und wende in den Gambu-Scripts der NPCs an, was du gelernt hast!
Spiel mit programmierten Gegnern
Folgende Elemente soll das Spiel beinhalten:
- Mindestens eine Spielfigur.
- Mindestens ein Ziel
- Mindestens ein rundes Tod-Element, das per Script bewegt wird.
Hacks und Tricks
Wichtig: In Bedingungen muss für die Gleichheit immer ein doppeltes == verwendet werden.