Mit Variablen werden häufig Zahlen gespeichert, die beispielsweise Eigenschaften eines Sprites beschreiben. Mit Variablen kann man rechnen und sie werden verwendet, um Wahrheitswerte zu bestimmen.
Bevor wir Variablen bei unserem Mähroboter einsetzen, programmieren wir zwei einfache Beispiele für ihre Verwendung.
Bild von Csaba Nagy auf Pixabay
Du hast sicherlich schon einmal eine Stoppuhr bzw. einen Timer, also eine Uhr, die rückwärts läuft, verwendet. Wir wollen diese beiden Uhren nun programmieren.
Beginnen wir mit der Stoppuhr für Sekunden. Beim Drücken der Taste a wird die Uhr auf Null zurückgesetzt. Eine Variable soll anschließend jede Sekunde um 1 erhöht werden, bis die Taste b gedrückt wird.
Als Zweites programmieren wir den Timer. Dazu soll zunächst nach Drücken der Taste t gefragt
werden, wie viele Sekunden der Timer herunterzählen soll. Für die Tastatureingabe verwenden
wir den Block
. Dieser erzeugt beim Sprite
eine Sprechblase mit dem angegebenen Text. Im unteren Bereich des Grafikfensters erscheint eine
Eingabezeile. Der eingegebene Wert kann anschließend in dem Block
ausgelesen und weiterverarbeitet werden.
Bisher konnte unser Mähroboter beliebig lange Wege zurücklegen. In der Realität besitzt ein solches Gerät aber einen Akku mit beschränkter Kapazität. Wir erweitern unseren Mähroboter um eine Variable akku, die einen Wert zwischen 0 und 100 annehmen soll. Zu Beginn ist der Akku vollständig geladen. Bei jeder Vorwärtsbewegung soll die Akkuladung um einen geringen Wert, z. B. 0.02 abnehmen.
Bei realen Mährobotern gibt es eine Ladestation, die der Mähroboter bei niedrigem Akkustand selbstständig anfährt, um seinen Akku wieder aufzuladen.
Wir stellen die Ladestation als schmalen Balken durch ein neues Sprite dar. Damit der Mähroboter alleine zur Ladestation kommt, verwenden wir den Block , der dafür sorgt dass sich der Mähroboter in die Richtung der Ladestation dreht.
Die folgende Animation zeigt die Wirkung des Blocks.
Das letzte Programm zum Anfahren der Ladestation funktioniert nur, wenn der
Mähroboter sich direkt auf diese zubewegen kann. Das folgende Fenster zeigt eine Situation,
in der dies nicht möglich ist.
Eine Lösung könnte dabei sein, den Mähroboter versuchen zu lassen, zur Ladestation zu fahren.
Trifft er dabei auf die Begrenzung könnte er versuchen, z. B. fünfmal wieder zu einer Begrenzung zu
fahren und sich dort zufällig zu drehen. Damit könnte er sich nun in einer Position befinden,
die ein direktes Anfahren der Ladesation ermöglicht.
Zum Abschluss der Anwendungen von Variabelen sollst du noch eine Variation einer Kontrollstruktur
zur Wiederholung kennenlernen. Im letzten Kapitel hast du gelernt, wie man eine Wiederholung mit
einer festen Anzahl erreicht.
Zum Beispiel:
Häufig möchte man innerhalb der wiederholten Anweisungen wissen,
die wievielte Wiederholung das gerade ist. Dazu kann man eine Variable und die Kontrollstruktur
einer bedingen Wiederholung verwenden.
Zunächst muss dabei eine globale Variable oder wie hier eine Skriptvariable deklariert und initialisiert werden. Für die bedingte Wiederholung benötigt man eine geeignete Abbruchbedingung und im Wiederholungsteil muss die Zählvariable a immer um eins erhöht werden.
Für diese Art von Wiederholungen bieten viele Programmiersprachen und auch Snap! einen eigene Kontrollstruktur an,
die dies etwas vereinfacht: Die for-Wiederholung (auch: for-Schleife oder engl. for-loop).
Die for-Wiederholung kann auch mit Hilfe einer bedingten Wiederholung unter Verwendung einer eigenen Variable umgesetzt werden.
for-Schleifen werden bei der Programmierung auch häufig ineinander geschachtelt.