Scratch

Scratch und Python:

#01 Blume aus überlappenden Kreisen

Ein Projekt von Markus Kautz, für Scratch und Python.

Lösung Scratch:

Diese Aufgabe lässt sich mit der Erweiterung „Malstift“ lösen. Für eine einfache Kreisformation kannst du den „Wiederholen bis“-Block aus dem Bereich Steuerung nutzen:

Zeichne die Blume am besten von außen nach innen. Überlege, welche Winkel du dazu
benötigst und an welche Position du den Stift schiebst. Vergiss nicht, beim Bewegen den
Stift zu deaktivieren.
In der Beispiellösung wird der Stift nach dem Zeichnen jeder Kreisformation in die Mitte
zurückbewegt.

Lösung Python:

Zeichne die Blume am besten von außen nach innen. In der Beispiellösung wurden Kreise
mit Radius 50 verwendet. Achte darauf, die Abstände an deine gewählte Kreisgröße
anzupassen. Die Farben wurden mit tk-color-strings angegeben. Du kannst aber auch
RGB werte verwenden und so zum Beispiel mit „randint“ Zufallsfarben erzeugen.

#21 Der Tower Jumper

Ein Projekt von Andreas Weiner.

Implementiere zuerst eine „Schwerkraft“, die auf deinen Avatar wirkt, außer dieser
steht auf einer Plattform:

Dann kannst du die verschiedenen Bewegungsformen durch die Tastenbelegungen
definieren:

Lösung für die Zusatzaufgabe:
Sorge zunächst dafür, dass sich die Blöcke nach unten bewegen und jeweils einen
Punkt bringen, wenn sie den unteren Rand erreichen. Dann sollen sie am oberen
Rand irgendwo links oder rechts erscheinen.

Nun kann man ein rotes Objekt am gesamten unteren Spielfeldrand platzieren, durch
dessen Berührung der Spieler verliert:

#19 Balloonhunt

Ein Projekt von Elieser Grill.

Zu Beginn machen wir die Steuerung für unseren Zauberstab. Mit dem ersten Befehl legst du die Startposition fest. Danach folgen Befehle, mit denen wir die Pfeiltasten so programmieren, dass wir damit den Zauberstab steuern können.

Als Nächstes befassen wir uns mit dem Stern, der unser Projektil darstellt. Der erste Befehl sorgt dafür, dass der Stern zu Beginn nicht sichtbar ist. Dann legen wir fest, dass der Stern, sobald die Maustaste gedrückt wird einen Klon von sich selbst erzeugt.

Nun folgt der Teil, der festlegt, dass der Stern nicht auf der Stelle bleibt. Sobald ein Klon entsteht, legen wir dessen Startposition fest. Damit es so aussieht, als würden die Sterne aus dem Stab kommen, legen wir als Position des Sterns, die des Zauberstabes fest. Danach sorgen wir mit dem Befehl „gehe x- er Schritte“ dafür, dass sich der Stern bewegt. Um zu bewerkstelligen, dass diese Bewegung bis zum anderen Bildschirmrand gemacht wird, packen wir um den Schritte-Befehl eine Schleife herum die als Bedingung „wird Rand berührt“ hat. Sobald dies der Fall ist, soll der Stern verschwinden, daher auch der „Lösche diesen Klon“-Befehl.

Der letzte Schritt sind die Ballons. Zu Beginn legen wir eine Startposition am rechten Rand fest. Damit der Ballon nicht immer die gleiche Farbe hat, wechseln wir im nächsten Schritt das Kostüm. Anschließend erzeugen wir einen Klon.

Sobald ein Ballon entsteht, müssen wir wie beim Stern dafür sorgen, dass er sich über den Bildschirm bewegt. Hier kommt ein weiteres Mal eine Schleife und Zufallszahlen zum Einsatz. Die Zufallszahlen sollten dabei in einem kleinen Bereich liegen, da dieser Bereich die Größe der „Schritte“, die ein Ballon macht, festlegt. Um die Geschwindigkeit, mit der sich die Ballons fortbewegen etwas zu drosseln, fügen wir auch hier einen Wartebefehl ein. Abschließend fehlen nur noch die Bedingungen, die die Ballons zum Verschwinden bringen. Unsere Bedingungen sind in diesem Fall, die Berührung des Sterns oder die des Randes.

Besipielprojekt: https://scratch.mit.edu/projects/505300129/

#18 Apfelfangen

Ein Projekt von Moritz Brinnich.

Es werden mindestens 2 Figuren benötigt. Eine Figur ist zum Beispiel ein Korb, die andere ein zu fangender Gegenstand.
In der einfachsten Variante passiert mit dem Korb nur folgendes:

Kommen wir zum Gegenstand, den wir fangen möchten:

Punkte zählen:
Um die Punkte zählen zu können, müssen wir eine Variable anlegen und dieses dann in der oberen Schleife verändern, wenn der Korb berührt wird.

Erweiterung:

#16 Dreiecke

Ein Projekt von Natalie Traxler

Lösung Grundaufgabe:
https://scratch.mit.edu/projects/492259970

Zum Zeichnen benötigst du die Erweiterung Malstift. Aktiviere diese links unten.
Nimm als Figur einen kleinen Punkt.

Wähle einen Startpunkt und gegebenenfalls Startrichtung.


Frage ab, welches Dreieck gezeichnet werden soll. Je nach Antwort wird ein anderer Code
für das jeweilige Dreieck gebraucht.
Dies kann gelöst werden durch die „falls (), dann“ Steuerung und das Senden von
Nachrichten, die jeweils als Startereignis für den jeweiligen Code genutzt werden. Durch
das Nutzen der Nachrichten wird der gesamte Code auch überschaubarer.

Gleichseitiges Dreieck


Wichtig ist, dass alle Seiten gleich lang sind und die Winkel jeweils 60 Grad groß sind.
Wie lang die Seiten sind, soll zufällig sein („50 bis 200“ wurde deshalb gewählt, weil das
Dreieck dann eine angenehme Größe bekommt). Die drei Seiten sollen jedoch alle die
gleiche Zufallszahl als Länge haben, weshalb die Variable x auf den Wert gesetzt wird.
Die Drehung um 120 Grad ist nötig damit die Figur (also der Punkt/Stiftspitze) nicht gerade
geht (entspricht 0 Grad Drehung oder 360 Grad Drehung), nicht zurück geht (entspricht 180 Grad Drehung), sondern so geht, dass ein Winkel von 60 Grad eingeschlossen wird, also 120(180-60) Grad.
Da es, vor allem, wenn das Dreieck den Rand berührt, passieren kann, dass der Abschluss
nicht exakt ist, wird (anstatt die Schleife einfach 3 Mal zu wiederholen) die dritte Seite
gezeichnet, indem zum Startpunkt zurückgeführt wird.

Rechtwinkliges Dreieck

Wichtig ist, dass ein Winkel 90 Grad groß ist.


Wie lang die Seiten sind, soll zufällig sein („50 bis 200“ wurde deshalb gewählt, weil das
Dreieck dann eine angenehme Größe bekommt).
Durch die Drehung um 90 Grad, entsteht ein 90 Grad Winkel zwischen den beiden Geraden.
Da die Längen der Seiten diesmal nicht gleich sein müssen, wird ein zweites Mal eine
Zufallszahl gewählt.
Damit der Abschluss exakt ist, wird die dritte Seite gezeichnet, indem zum Startpunkt
zurückgeführt wird.
Da zweimal eine Zufallszahl generiert wird, kann diese Zahl jedoch auch gleich sein und ein
gleichschenkliges Dreieck würde entstehen. (Siehe Zusatzaufgabe 1)

Gleichschenkliges Dreieck
Wichtig ist, dass 2 Seiten gleich lang sind.


Wie lang die Seiten sind, soll zufällig sein („50 bis 200“ wurde deshalb gewählt, weil das
Dreieck dann eine angenehme Größe bekommt). Zwei Seiten sollen jedoch die gleiche
Zufallszahl als Länge haben, weshalb die Variable x auf den Wert gesetzt wird.
Die Größe des Winkels zwischen den zwei Schenkeln ist egal, solange es möglich ist, dass
ein Dreieck entsteht (also größer als 0 Grad und kleiner als 180 Grad). („10 bis 170“ wurde
deshalb gewählt, weil das Dreieck dann „schöner“ wird als bei „0.1 bis 179.9)
Damit der Abschluss exakt ist, wird die dritte Seite gezeichnet, indem zum Startpunkt
zurückgeführt wird.
Da eine Drehung um 90 Grad und 120 Grad nicht ausgeschlossen wird, kann immer noch
ein rechtwinkliges oder gleichseitiges Dreieck entstehen. (Siehe Zusatzaufgabe 1)

Rechtwinkliges und gleichschenkliges Dreieck
Wichtig ist, dass 2 Seiten gleich lang sind und ein Winkel 90 Grad groß ist.


Wie lang die Seiten sind, soll zufällig sein („50 bis 200“ wurde deshalb gewählt, weil das
Dreieck dann eine angenehme Größe bekommt). Zwei Seiten sollen jedoch die gleiche
Zufallszahl als Länge haben, weshalb die Variable x auf den Wert gesetzt wird.
Durch die Drehung um 90 Grad, entsteht ein 90 Grad Winkel zwischen den beiden Geraden.
Damit der Abschluss exakt ist, wird die dritte Seite gezeichnet, indem zum Startpunkt
zurückgeführt wird.

Lösung Zusatzaufgabe 1:
https://scratch.mit.edu/projects/491671540

Rechtwinkliges und nicht gleichschenkliges Dreieck
Wichtig ist, dass ein Winkel 90 Grad groß ist und die zwei Katheten nicht gleich lang sind.


Der Code des rechtwinkligen Dreiecks wird ein wenig abgeändert.
Durch die Zufallszahl 1 bis 2 und die „falls () sonst“ Steuerung wird zu 50% eine Zufallszahl
größer als die Seite x und zu 50% eine Zufallszahl kleiner als die Seite x als Seitenlänge
festgelegt. (Das ist natürlich nicht ganz fair, da x nicht der Median ist.) Zur besseren
Erkennbarkeit wurden auch Werte im Bereich +/- 10 um den Wert x ausgeschlossen. Die
Zufallszahlen wurden mit einem Minimum von 40 und einem Maximum von 210 versehen,
falls der Fall eintritt, dass x genau 50 oder 200 ist.

Gleichschenkliges, nicht rechtwinkliges und nicht gleichseitiges Dreieck
Wichtig ist, dass 2 Seiten gleich lang sind, kein Winkel 90 Grad groß ist und kein Winkel 60
Grad groß ist.


Der Code des gleichschenkligen Dreiecks wird ein wenig abgeändert.
Folgende Werte soll der Winkel zwischen den Schenkeln nicht annehmen: 0, 60, 90, 180.
Also darf die Drehung nicht um folgende Werte erfolgen: 180, 90 120, 0
Zur besseren Erkennbarkeit wurden auch Werte im Bereich +/- 10 um diese Werte
ausgeschlossen.

Für jeden möglichen natürlichen Wert für die Grad soll die gleiche Wahrscheinlichkeit
zugeschrieben sein. Es gibt 123 mögliche Werte. Durch das Ziehen der Zufallszahl von 10 bis 80, wird aus 71 Werten entschieden. Somit soll in 71 (<72) der 123 Fällen aus diesem Intervall gewählt werden. 11 mögliche Zahlen gibt es bei der Zufallszahl von 100 bis 110, somit soll bei 11 (>112) der 123 möglichen Werte aus jenem Intervall gewählt werden. In
den restlichen Fällen, also wenn die Variable „Prozent“ einen der 41 Werte 72, 73, ……. 111,
112 annimmt, soll einer der 41 möglichen Werte der Zufallszahl von 130 bis 170 gewählt
werden.

Lösung Zusatzaufgabe 2:
https://scratch.mit.edu/projects/492232937

Für das Quiz, in dem ein Dreieck erscheint, dem zugeordnet werden soll welches der 4
Dreiecke es ist und Punkte gesammelt werden können, wurde der erste Block verändert,
die Codes für die jeweiligen Dreiecke sind unverändert.


Eine Liste wird angelegt.
Aus dieser wird zufällig ein Element (Dreiecksart) gewählt, der Variablen „Dreieck“
zugeordnet und durch das Senden der Nachricht der Code-Teil für das Zeichnen des
entsprechenden Dreiecks aktiviert.

Dann wird der/die Benutzer/in gefragt, welches Dreieck es ist. Stimmt die Antwort mit der
Variablen überein, wird der Punktestand um 1 erhöht. Außerdem wird abgefragt, ob man
noch einmal spielen möchte und die Schleife wird wiederholt bis die Antwort n(ein) lautet.

#15 Animierte Geburtstagskarte

Erstelle eine virtuelle Geburtstagskarte!

Gehe auf scratch.mit.edu und wähle „Entwickeln“.

Die Programmieroberfläche besteht aus der Bibliothek mit den Befehlen, dem Programmierbereich, der Bühne und den Figuren.

Klicke bei den Figuren mit der rechten Maustaste auf die Katze und wähle „Löschen“.

In der rechten unteren Ecke befindet sich das Feld „Bühnenbilder“. Hier kannst du eine Bühne aus der Bibliothek auswählen.

In der linken oberen Ecke findest du den Reiter Bühnenbilder. Füge mit Hilfe des Textwerkzeuges einen Text ein. Verändere ihn so wie er dir gut gefällt.

Gehe anschließend auf das Katzensymbol unten „Figur wählen“. Hier kannst du dir deine Figur aussuchen.

Jetzt kannst du die Befehle aus der Bibliothek auf den Programmierbereich ziehen und zusammenstecken.

Danach füge eine weitere Figur ein à Torte. Programmiere sie, sodass sie ihr Kostüm ändert und „Happy Birthday“ singt.

Im Anschluss füge eine weitere Figur
auf deiner Bühne ein, welche sich ebenfalls
bewegen soll.

FERTIG!

Wenn du nun auf die Figuren klickst,
führen sie ihre programmierten Befehle aus.