Challenge Digitaler Eierlauf
Deine Herausforderung: Laufe, ohne zu wackeln
Wie gut kannst du laufen, ohne dabei zu wackeln?
Challenge Digitaler Eierlauf
Macht einen Wettlauf: Versucht, eine vereinbarte Strecke schnell genug zu laufen, den Calliope vor euch zu halten und dabei aber möglichst wenig zu wackeln.
Aufgabe: Unterprogramm für Eierlauf
Erstelle für Calliope ein Unterprogramm, das nach einem Countdown die Drehungen um die x- und die y-Achse so lange aufsummiert, bis die Tasten "A+B" geklickt wurden und die Summe aller Drehungen ausgibt.
Je größer die Summe aller Drehungen ist, desto "wackeliger" war der Lauf.
Hilfekärtchen
Wenn du deinen Calliope ganz flach auf den Tisch legst, dann ist er weder um die x-Achse noch um die y-Achse gedreht.
Wenn du deinen Calliope nun nach rechts um die y-Achse drehst ("rollen"), dann wird entsprechende positive Drehwinkel erzeugt. Wenn du ihn nach links rollst, ist der Drehwinkel negativ.
Wenn du deinen Calliope zu dir neigst (ihn also um die x-Achse zu dir drehst ("nicken")), dann wird ein entsprechender positiver Drehwinkel erzeugt, wenn du ihn von dir weg drehst, ist er negativ.
Du benötigst eine neue Variable (z.B. "summeZittern"), die du zu Beginn auf 0 setzt (das nennt man "initialisieren"). Nun muss dauerhaft die aktuelle Drehung um die beiden Achsen zu dieser Variablen addiert werden. Dabei dürfen wir aber keine negativen Drehwinkel verwenden - deshalb benötigen wir von dem Drehwinkel den Betrag (in Makecode heißt das "absolute Werte").
Die Initialisierung zu Beginn:
Die Erhöhung der Variable um den Drehwert:
(Die entsprechende Anweisung für die Drehung um die y-Achse muss dann ebenfalls noch in die Schleife.)
Pausiere in der Schleife noch eine gewisse Zeit (z.B. 100ms), damit der Wert für die Variable nicht zu groß wird.
Das letzte Hilfekärtchen gibt es in 60 Sekunden...
Funktion eierlauf:
starte einen 3-Sekunden-Countdown
initialisiere die Variable summeZittern mit 0
während nicht Knopf "A+B" geklickt ist:
ändere summeZittern um den absoluten Wert der Drehung um die x-Achse
ändere summeZittern um den absoluten Wert der Drehung um die y-Achse
pausiere für 100ms
zeige den Wert von summeZittern an