~~NOTOC~~ ===== Lernziele heute ===== * Steuerung der Turtle per Tastatur * mit anderen Worten: Wir schreiben ein Zeichen- oder Mal-Programm! * "Bedingte Ausführung". Was ist ''if''-''else''-Selektion? ====== if-Selektion (Auswahl, Selektion, if-then-else-Struktur, Verzweigung) ====== Oft muss man sich im Leben entscheiden (Welcher Weg bei Wanderung, welche Schule, welcher Beruf). Motivation durch Pseudo-Code zwei Flussdiagramme: - "Wenn die Sonne scheint, dann nimm den Sonnenhut. Geh raus." Beispiel für ''if''-Selektion. - "Wenn die Sonne scheint, dann nimm den Sonnenhut, sonst nimm den Regenschirm. Geh raus.". Beispiel für ''if''-''else''-Selektion. ==== Aufgabe 1 (Verstehen der if-Selektion durch Ausführen eines Beispielprogramms im Einzelschrittmodus) ==== **Gemeinsam mit kurzen Einzelarbeitsphasen, ca. 3 + 3 + 5 + 4 Minuten (mit Zwischenbesprechung), Teilaufgaben bitte genau lesen!** Das folgende Programm illustriert die zwei häufigsten Verwendungen der ''if-(-else)''-Selektion. - Kopiere das Programm in deine Tigerjython-IDE und bringe es mit möglichst wenig Änderungen zum Funktionieren. - Führe das Programm aus (eventuell im Debugging-Modus) und verstehe es auf diese Weise! Test etwa, was bei den fünf Eingaben 15, 130, 0, -23 und 2022 passiert. - Ändere das Programm so, dass bei einer Altersangabe $<0$ oder $\geq 130$ nur ''"Das glaube ich dir nicht."'' ausgegeben wird, aber nicht mehr ''"Du bist kein Baby."''. Vielleicht ist es hilfreich, die Info-Boxen unten zu lesen. - Zeichne Flussdiagramme zum ursprünglichen und zum veränderten Programm. (Das Symbol für eine Selektion ist ein auf einer Ecke stehendes Quadrat.) alter = input("Gib dein Alter ein!") # Erste Verwendung: if alter < 0 or alter >= 130 print("Das glaube ich dir nicht.") # Zweite Verwendung: if alter == 0: print("Du bist ein Baby.") else print("Du bist kein Baby.") ''if''-Selektion: Der eingerückte Code-Block (der auch aus mehreren Zeilen bestehen kann) nach der ''if''-Zeile wird ausgeführt, falls die Bedingung zwischen ''if'' und '':'' wahr ist (wenn man die aktuellen Werte der Variablen einsetzt). Wer mag, kann den Doppelpunkt '':'' als ''then'' lesen: "Wenn ... dann ..." ''if''-''else''-Selektion: Der eingerückte Code-Block nach der ''if''-Zeile wird ausgeführt, falls die angegebene Bedingung wahr ist, sonst wird der eingerückte Code-Block nach der Zeile ''else:'' ausgeführt. Diese gesamte Struktur bedeutet also: "Wenn ... dann ... sonst ..." Einrückungen und Doppelpunkte sind wichtig! Wie bei ''repeat'' sind sie eine beliebte Fehlerquelle! Im obigen Programm tauchen einige Vergleiche von Zahlen auf. Hier die wichtigsten Vergleichsmöglichkeiten: * ''=='' für mathematisches "gleich" $=$. **Achtung: Das einfache Gleichheitszeichen ''='' wird für die Zuweisung bei Variablen verwendet.** * ''!='' für "ungleich" $\not=$. * ''<'' für "echt kleiner" $>$. * ''>'' für "echt grösser" $>$. * ''<='' für "kleiner-gleich" $\leq$ (also kleiner oder gleich). * ''>='' für "grösser-gleich" $\geq$. ==== Aufgabe 2 (zufällige Bewegung der Schildkröte - Brownsche Bewegung, Bewegung kleiner Teilchen in Flüssigkeiten oder Gasen) ==== **Einzelarbeit, ca. 15 Minuten.** Mit ''from random import *'' am Programmanfang liefert der Befehl ''random()'' Zufallszahlen zwischen 0 und 1 (alle Zahlen kommen "gleich oft" vor). Teste dies mit dem folgenden Code. from random import * repeat 10: z = random() print(z) Erweitere den folgenden Programmcode so, dass die Schildkröte zufällig durch die Gegend läuft: Sie soll ''n'' Mal um ''s = 10'' Pixel nach vorne laufen und nach jeder Vorwärtsbewegung entweder um $90^\circ$ nach links oder nach rechts abbiegen, jeweils mit Wahrscheinlichkeit $50 \%$. from gturtle import * from random import * makeTurtle() speed(-1) # Das ist die schnellstmögliche Geschwindigkeit (abgesehen von hideTurtle()) s = 10 n = input("Wie oft soll sich die Schildkröte bewegen?") # Hier deinen Code ergänzen! Hinweise: * Wer will, kann zuerst ein Flussdiagramm entwerfen (im Kopf oder auf Papier). * Verwende eine ''repeat''-Schleife und eine ''if''-''else''-Selektion. * Verändere die Strecke ''s'', um die sich die Kröte vorwärts bewegt, zufällig um $+1$ oder $-1$. (Die Turtle akzeptiert auch ''forward(-2)'' und geht dann eben 2 Pixel rückwärts.) * Sorge dafür, dass ''s'' stets zwischen 0 und 20 liegt. * Ändere das Programm so, dass die Turtle (ungefähr) doppelt so oft nach links wie nach rechts abbiegt. * Verändere den Winkel, um den die Turtle abbiegt, zufällig um $+5^\circ$ oder $-5^\circ$. Dazu benötigst du eine neue Variable. * Variiere die Dicke des Zeichenstifts zufällig. * Sorge dafür, dass die Turtle nie das Zeichenfenster verlässt! Dazu wirst du vermutlich die Befehle ''getX()'' und ''getY()'' verwenden, die dir die aktuellen Koordinaten der Turtle liefern. ==== (Mini-)Aufgabe 3 (Befehl ''getKeyWait()'' und ''elif''-Syntax verstehen) ==== **"Gemeinsam im Gespräch", ca. 5 Minuten.** * Wer versteht, was das linke Programm tut? Bitte ausprobieren! * Was ist der Unterschied zwischen ''getKeyWait()'' und ''input("...")''? * Ich erkläre rechtes Programm (''elif'' = ''else'' + ''if''; rechtes ist kurze Version des linken). * Bonusfrage: Geht dasselbe auch nur mit ''if''? from gturtle import * # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist. makeTurtle() # Ohne sie funktioniert das Programm leider nicht. taste = getKeyWait() print(taste) if taste == "a": print("a wie Anna") else: if taste == "b": print("b wie Berta") else: if taste == "c": print("c wie Caesar") else: if taste == "d": print("d wie Daniel") else: if taste == "e": print("E wie Emil") else: print("Du hast keine der Tasten a, b, c, d, e gedrückt.") dispose() # Schliesst das Turtle-Fenster. from gturtle import * makeTurtle() taste = getKeyWait() print(taste) if taste == "a": print("a wie Anna") elif taste == "b": print("b wie Berta") elif taste == "c": print("c wie Caesar") elif taste == "d": print("d wie Daniel") elif taste == "e": print("E wie Emil") else: print("Du hast keine der Tasten a, b, c, d, e gedrückt.") dispose() ==== Aufgabe 4 (Zeichenprogramm / ferngesteuerte Turtle) ==== **Einzelarbeit, ca. 15 Minuten.** Das folgende Programm nimmt so lange ein Einzelzeichen entgegen, bis die Taste "e" (für Exit oder Escape) gedrückt wird. Probiere es aus! Gerne auch im Debugging-Modus. from gturtle import * makeTurtle("black") taste = " " # oder irgendetwas anderes ungleich "e" # Die folgende sogenannte "while"-Schleife funktioniert # ähnlich wie eine repeat-Schleife: Der # eingerückte Code-Block wird solange wiederholt # ausgeführt, wie die angegebene Bedingung gilt. # englisch WHILE = deutsch SOLANGE while taste != "e": taste = getKeyWait() # Hier ist dein Code zu ergänzen! dispose() Erweitere diesen Code zu einem Zeichenprogramm mit den Tasten i, j, k, l als "Pfeil"-Tasten! {{:lehrkraefte:snr:informatik:bruehl-2022:ijkl.png?60|}} Die Schildkröte soll * beim Tastendruck ''i'' 10 Pixel vorwärts laufen; * beim Tastendruck ''k'' 10 Pixel rückwärts laufen; * beim Tastendruck ''j'' sich um $60^\circ$ nach links drehen; * beim Tastendruck ''l'' sich um $60^\circ$ nach rechts drehen. * Taste ''e'' bricht das Programm ab. * Bei jeder anderen Eingabe soll der Befehl ''print("Taste ohne Funktion.")'' ausgeführt werden. Die erwünschte Lösung verwendet die obige "elegante" ''if''-''elif''-...-''elif''-''else''-Variante der Selektion. Erweitere dein Zeichenprogramm! Hier einige Vorschläge: * Tasten ''r'', ''g'', ''b'', ''w'' verändern die Zeichenfarbe auf Rot, Gelb, Grün und Weiss. * Tasten ''+'' und ''-'' verändern die Dicke des Zeichenstifts. (Speichere die aktuelle Dicke des Stifts in einer Zusatzvariablen.) * Tasten ''p'' und ''m'' (alias Plus und Minus) verändern die Strecke, um die sich die Schildkröte jeweils bewegt. * Tasten deiner Wahl zum Anheben bzw. Absenken der Schildkröte (''penUp()'', ''penDown()''). * Benutzerfreundlichkeit: Gib am Anfang per ''print(...)'' aus, welcher Tastendruck was bewirkt. * Gib etwa bei der Änderung der Dicke des Stifts per ''print(...)'' aus, wie dick der Stift nun ist. Ähnliches bei Farbänderung etc. * Auf Tastendruck ''w'' darf der Benutzer per ''input("Bitte Winkel eingeben. ")'' einen Winkel eingeben, um den sich die Schildkröte (nach rechts) drehen soll. Negative Winkel sorgen für Linksdrehung. * Taste ''c'' (wie "clear") zum Löschen der Zeichnung. * Taste ''h'' (wie "home") zum Bewegen der Schildkröte an Ausgangsposition. * Finde im Internet heraus, wie du deine Zeichnung als Datei (etwa im Format JPEG) abspeichern kannst! * ... nun fehlt nicht mehr viel zu einem professionellen Zeichenprogramm ... ==== Aufgabe 5 (Quiz) ==== ** Einzelarbeit, ca. 15 Minuten ** Beachte die Hinweise unten und schreibe ein Programm, das dem Benutzer die folgenden oder mindestens drei Quizfragen deiner Wahl stellt: * Wie viele Kantone hat die Schweiz? (richtige Antwort 26) * Wie viele Einwohner hat die Schweiz ungefähr in Millionen? (akzeptiere 8 und 9 als richtige Antwort) * In welcher Stadt sitzt die Schweizer Regierung? (Bern) Der Benutzer soll jeweils erfahren, ob die Antwort gestimmt hat; wenn nicht, soll die richtige Antwort genannt werden. Am Ende soll als Auswertung die Anzahl richtiger Antworten ausgegeben werden. Hinweise: * Verwende zur Abfrage jeweils den Befehl ''s = input("Hier steht die Frage")'' - dann musst du nicht unterscheiden, ob die Eingabe eine Zahl, Kommazahl oder Text ist. * Der Vergleich einer "Text-Variablen" ''s'' mit einer Zeichenkette geht mit ''s == "St. Gallen"'' bzw. mit ''s != "St. Gallen"''. Statt Text-Variable sagt man auch "string". Der Benutzer soll nun bei jeder falsch beantworteten Frage zwei weitere Versuche haben. Versuche, dies mit einer ''repeat 3:''-Schleife zu realisieren. Hinweis: Verwende eine Variable, die ''0'' (oder ''False'') ist, wenn die Frage noch nicht richtig beantwortet ist. Sonst wird sie ''1'' (oder ''True''). Alternativ geht es auch mit einer ''while''-Schleife. ==== Hausaufgabe (kann eventuell während der Lektion begonnen werden) ==== Du hast die Wahl: * Aufgabe 5 oder * Aufgabe 4 mit mindestens drei der Bonusteilaufgaben (oder ähnlich schwierigen Sachen deiner Wahl) * Aufgabe 2 mit mindestens drei der Bonusteilaufgaben (oder ähnlichen schwierigen Sachen deiner Wahl) * eine der beiden nachfolgenden Bonusaufgaben, also Aufgabe 6 oder Aufgabe 7 from gturtle import * makeTurtle("black") taste = " " # oder irgendetwas anderes ungleich "e" # Die folgende sogenannte "while"-Schleife funktioniert # ähnlich wie eine repeat-Schleife: Der # eingerückte Code-Block wird solange wiederholt # ausgeführt, wie die angegebene Bedingung gilt. # englisch WHILE = deutsch SOLANGE while taste != "e": taste = getKeyWait() if taste == "i": forward(10) elif taste == "j": left(60) elif taste != "e": print("Taste ohne Funktion.") dispose() ---- Abgabe bis **spätestens Sonntagabend 23:59 Uhr** vor der nächsten Doppellektion über den folgenden Link: * [[https://bldsg-my.sharepoint.com/:f:/g/personal/olaf_schnuerer_ksbg_ch/Egi4k9705MFHvdV4AGQWR-MBM1Jqac-8lgbKGD60w_B-qw|Klasse 1AFGsK]] * [[https://bldsg-my.sharepoint.com/:f:/g/personal/olaf_schnuerer_ksbg_ch/EhJgpUzHB_BHjhjTclaYFBoBE5RIs6djbdSmwSGyUvrcHw|Klasse 1CFP]] ==== Zusammenfassung ==== * Du verstehst das Konzept der ''if''-Selektion und kannst es in Beispielen sinnvoll anwenden. * Du kennst die drei (oder vier) Varianten der ''if''-Selektion: Nur ''if'' oder ''if''-''else'' oder ''if''-''elif''-...-''elif''-''else'' (letzteres geht auch ohne ''else'' am Ende). * Du weisst, wie ''if'' und ''if''-''else''-Selektion in einem Flussdiagramm dargestellt werden. (Die Darstellung ist im Wesentlichen dieselbe: Bei ''if''-''else'' steht im "Nein"-Ast etwas, bei ''if'' nichts. Die beiden "Ja"- und "Nein" Äste kommen dann eh wieder zusammen.) * Du hast einen ersten Eindruck, wie eine ''while''-Schleife funktioniert. * Du kennst den Unterschied zwischen ''input("...")'' und ''getKeyWait()''. ==== Bonusaufgabe, Aufgabe 6 ==== **Rasenmäher-Schildkröte** Lass die Schildkröte so lange geradeaus laufen, bis sie nahe am Rand des Fensters ist. Dann soll sie etwas zurück gehen und sich etwas drehen (dies können feste oder zufällige Werte sein); danach geht es wieder mit der Vorwärtsbewegung weiter etc. Hinweis: * Mit den Befehlen ''getX()'' und ''getY()'' bekommst du die $x$- und $y$-Koordinate der Schlidkröte. Die Koordinaten des Fensters gehen von -400 bis 400 in $x$-Richtung und $-300$ bis $300$ in $y$-Richtung. * Mit ''while True:'' oder ''repeat:'' kannst du den nachfolgenden eingerückten Code-Block unendlich oft ausführen lassen. ==== Bonusaufgabe, Aufgabe 7 ==== **Schildkröte als Billard-Ball** Wähle am Anfang einen zufälligen Startwinkel. Lass die Schildkröte geradeaus in diese Richtung laufen, bis sie auf den Rand des Fensters trifft. Dort soll sie wie ein Lichtstrahl bzw. wie eine idealisierte Billardkugel reflektiert werden. Schaffst du es, dass die Billard-Schildkröte bei jeder Reflektion die Zeichenfarbe ändert? Die Farbe kann zufällig oder in einer festgelegten Reihenfolge - etwa rot-grün-blau - geändert werden. Hinweise: Neben den Hinweisen bei der vorigen Aufgabe verwende: * Mit ''heading()'' bekommst du die aktuelle Richtung der Schildkröte in Grad; ''0'' bedeutet nach oben, ''90'' nach rechts etc. Es sind aber auch Werte über 360 wie ''400'' oder unter Null wie ''-35'' möglich. * Mit ''setHeading(...)'' kannst du die Schildkröte in eine Richtung drehen. ===== Fragebox - auch zum Besprechen von Programmen während der Lektion (NICHT für Hausaufgaben) ===== Bitte einfach am Anfang des Programms oder der eingereichten Datei die Frage aufschreiben (mit oder ohne Hashtag ''#'' als Kommentareinleitungszeichen am Zeilenanfang). [[https://bldsg-my.sharepoint.com/:f:/g/personal/olaf_schnuerer_ksbg_ch/EmLIcTN64lJIlEKu0EyiDYoBg9smMusTs1nVj04-F1tEFQ|Link zur Fragebox]] ===== Lösungsvorschläge und Tafelanschriebe ===== {{:lehrkraefte:snr:informatik:bruehl-2022:flussdiagramm-regen-sonne.jpg?400|}} Beim Ausführen merkt man, dass das Programm fehlerhaft ist (zwei Doppelpunkte fehlen, eine Einrückung falsch). Die beabsichtigte Korrektur sieht so aus: alter = input("Gib dein Alter ein!") # Erste Verwendung: if alter < 0 or alter >= 130: print("Das glaube ich dir nicht.") # Zweite Verwendung: if alter == 0: print("Du bist ein Baby.") else: print("Du bist kein Baby.") (Flussdiagramme noch zu ergänzen) Die Lösung der letzten Teilaufgabe ist: alter = input("Gib dein Alter ein!") if alter < 0 or alter >= 130: print("Das glaube ich dir nicht.") else: if alter == 0: print("Du bist ein Baby.") else: print("Du bist kein Baby.") {{:lehrkraefte:snr:informatik:bruehl-2022:brownsche-bewegung-flussdiagramm-cropped.jpg?400|Flussdiagramm dazu}} from gturtle import * from random import * makeTurtle() speed(-1) # Das ist die schnellstmögliche Geschwindigkeit (abgesehen von hideTurtle()) s = 10 n = input("Wie oft soll sich die Schildkröte bewegen?") repeat n: forward(s) if random() < 0.5: left(90) else: right(90) Das Programm wartet auf einen Tastendruck und speichert diesen in der Variablen ''taste'' und gibt den Wert von ''taste'' aus. Je nach Eingabe wird dann in der verschachtelten ''if''-Struktur entschieden, was ausgegeben wird. Der Befehl ''input("...")'' nimmt eine Eingabe (die auch aus mehreren Zeichen bestehen kann) entgegen; die Eingabe muss mit der Return-Taste oder Klicken auf den Ok-Button abgeschlossen werden. Der Befehl ''getKeyWait()'' wartet auf den nächsten Tastendruck (nur ein Zeichen); die Eingabe wird nicht mit Return o. ä. abgeschlossen. Es geht auch nur mit ''if'', z. B. wie folgt. Beachte, dass die letzte ''if''-Selektion deutlich komplizierter geworden ist! from gturtle import * # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist. makeTurtle() # Ohne sie funktioniert das Programm leider nicht. taste = getKeyWait() print(taste) if taste == "a": print("a wie Anna") if taste == "b": print("b wie Berta") if taste == "c": print("c wie Caesar") if taste == "d": print("d wie Daniel") if taste == "e": print("E wie Emil") if taste != "a" and taste != "b" and taste != "c" and taste != "d" and taste != "e": print("Du hast keine der Tasten a, b, c, d, e gedrückt.") dispose() # Schliesst das Turtle-Fenster. from gturtle import * makeTurtle("black") taste = " " # oder irgendetwas anderes ungleich "e" # Die folgende sogenannte "while"-Schleife funktioniert # ähnlich wie eine repeat-Schleife: Der # eingerückte Code-Block wird solange wiederholt # ausgeführt, wie die angegebene Bedingung gilt. # englisch WHILE = deutsch SOLANGE s = 10 while taste != "e": taste = getKeyWait() if taste == "i": forward(s) elif taste == "j": left(60) elif taste == "k": backward(s) elif taste == "l": right(60) elif taste == "p": s = s + 1 elif taste == "m": s = s - 1 elif taste == "w": winkel = input("Bitte Winkel eingeben. ") right(winkel) elif taste == "h": home() elif taste != "e": print("Taste ohne Funktion.") dispose() n = 0 # Anzahl korrekter Antworten. a = input("Wie viele Kantone hat die Schweiz?") if a == 26: # Achtung, manche haben hier a == "26" geschrieben. Jedoch: Der Befehl "input" speichert eine Zahleingabe wie 26 als Zahl, nicht als String! print("Korrekt!") n = n + 1 else: print("Leider falsch. Die richte Antwort wäre 26 gewesen.") b = input("Wie viele Einwohner hat die Schweiz ungefähr in Millionen?") if b == 8 or b == 9: print("Korrekt!") n = n + 1 else: print("Leider falsch. Die richte Antwort wäre 8 oder 9 gewesen.") c = input("In welcher Stadt sitzt die Schweizer Regierung?") if c == "Bern": print("Korrekt!") n = n + 1 else: print("Leider falsch. Die richte Antwort wäre Bern gewesen.") print("Anzahl korrekter Antworten:") print(n) if n > 2: print("Sehr gut!") elif n == 0: print("Sehr schlecht!") Und hier die Bonus-Variante (die ersten beiden Fragen per ''repeat'', die dritte per ''while'', damit du zwei Möglichkeiten siehst): n = 0 # Anzahl korrekter Antworten. v = 0 # Anzahl falsche Versuche eingabeStimmt = 0 repeat 3: if eingabeStimmt == 0: a = input("Wie viele Kantone hat die Schweiz?") if a == 26: print("Korrekt!") n = n + 1 eingabeStimmt = 1 else: print("Leider falsch.") v = v + 1 if eingabeStimmt == 0: print("Alle drei Versuche falsch. Die richte Antwort wäre 26 gewesen.") print(20 * "-" + " Neue Frage " + 20 * "-") eingabeStimmt = 0 repeat 3: if eingabeStimmt == 0: b = input("Wie viele Einwohner hat die Schweiz ungefähr in Millionen?") if b == 8 or b == 9: print("Korrekt!") n = n + 1 eingabeStimmt = 1 else: print("Leider falsch.") v = v + 1 if eingabeStimmt == 0: print("Alle drei Versuche falsch. Die richte Antwort wäre 8 oder 9 gewesen.") # Und nun die Variante mit der while-Schleife print(20 * "-" + " Neue Frage " + 20 * "-") nochVersuche = 3 # Anzahl der Versuche, die der Antwortende noch hat. while nochVersuche > 0: c = input("In welcher Stadt sitzt die Schweizer Regierung?") nochVersuche = nochVersuche - 1 if c == "Bern": print("Korrekt!") n = n + 1 nochVersuche = 0 else: print("Leider falsch.") v = v + 1 if c != "Bern": print("Alle drei Versuche falsch. Die richte Antwort wäre Bern gewesen.") print(20 * "-" + " Auswertung " + 20 * "-") print("Anzahl korrekt beantworteter Fragen:") print(n) print("Anzahl Fehlversuche:") print(v) if n == 3 and v == 0: print("Sehr gut!") else: print("Du kannst dich noch steigern!") ===== Hausaufgaben vom letzten Mal ===== Ich gebe zwei Lösungen: * In der ersten Lösung wird jedes Quadrat von der unteren linken Ecke aus gezeichnet und die Turtle wird davor entsprechend positioniert. * In der zweiten Lösung wird jedes Quadrat von der Mitte der oberen Seite gezeichnet und die Turtle wird davor entsprechend positioniert. Erste Lösung from gturtle import * makeTurtle() # hideTurtle() n = input("Wie viele Quadrate?") s = 10 differenz = 20 repeat n: repeat 4: forward(s) right(90) s = s + differenz penUp() left(90) forward(differenz / 2) right(90) backward(differenz / 2) penDown() Zweite Lösung from gturtle import * makeTurtle() # hideTurtle() n = input("Wie viele Quadrate?") s = 10 differenz = 20 repeat n: home() penUp() forward(s / 2) right(90) penDown() repeat 4: forward(s / 2) right(90) forward(s / 2) s = s + differenz from mbrobot import * n = 16 # Anzahl der Bewegungen, darf gerne verändert werden zeitVorwaerts = 660 zeitRechtsdrehung = 450 # Diese Zeitangaben haben bei meinem Roboter (ungefähr) # funktioniert. Im Simulationsmodus sind das aber keine # rechten Winkel beim Abbiegen. repeat n: forward() delay(zeitVorwaerts) right() delay(zeitRechtsdrehung) zeitVorwaerts = zeitVorwaerts + 400 stop() ===== Link zur Kursseite ===== [[lehrkraefte:snr:informatik:bruehl-2022:|Zur Kursseite]]