Im Video zu Algorithmen haben wir gelernt, dass Algorithmen selbst wieder Bausteine für Algorithmen sein können. Tatsächlich verfügt auch jeder der Blöcke in Snap! über einen Algorithmus, der ihm sagt, welche Schritte er befolgen muss um das zu tun, was er tut.
Wieder zeigt sich das Prinzip der Abstraktion mit: Wir müssen nicht alle Details eines Blocks verstehen, um ihn nutzen zu können. Und auch wir können komplexere Algorithmen in einen eigenen Block verpacken!
Um Algorithmen als Teil von Algorithmen in Snap! übersichtlich darstellen zu können, greifen wir häufig auf eigene Blöcke zurück. In diesem Abschnitt wollen wir uns ansehen, wie wir eigene Blöcke erstellen.
Werfen wir einen Blick auf noch einen anderen Algorithmus, den wir bereits in Modul 01 entworfen haben.
Ein Algorithmus, der ein Quadrat zeichnet.
Seine Implementierung sah so aus:
Wir werden diese Skripte nun in eigene Blöcke auslagern.
Wie das genau funktioniert, sehen Sie im Video:
Eigener Block zeichne Polygon mit (seitenzahl) Seiten
Im Modul 01 haben wir ein Skript erstellt, das ein beliebiges Polygon (n-Eck) zeichnet.
Öffnen Sie die Vorlage und erstellen Sie einen eigenen Block, der ein beliebiges Polygon (n-Eck) zeichnet. Der Block soll eine Eingabe seitenzahl
für die Seitenzahl entgegennehmen.
Klicken dazu auf die Schaltfläche 'Neuer Block', die wir am Ende jeder Kategorie der Palette finden und erstellen einen neuen Befehlsblock.
Es öffnet sich ein neues Fenster, in dem Blöcke genau wie Skripte im Skriptbereich editiert werden können.
Sollten Sie den Blockeditor geschlossen haben, klicken Sie mit der rechten Maustaste auf den Block und wählen sie Bearbeiten...
.
Achten Sie beim Erstellen des Blocks darauf, dass seitenzahl
als Eingabe und nicht als Beschriftung ausgezeichnet ist.
Klicken Sie auf ein Wort wie seitenzahl um es von Beschriftung zu Eingabe zu ändern oder umgekehrt.
Eine möglich Lösung ist:
zeichne Polygon mit (seitenzahl) Ecken
so, dass er auch eine Eingabe für die Seitenlänge entgegennimmt! Schreiben Sie ein Skript, in dem Ihr gerade erstellter Block mindestens 3 mal aufgerufen wird!
Hier sind viele Lösungen denkbar. Sie können den Block in einer Sequenz mehrfach aufrufen:
oder innerhalb einer Wiederholung verwenden: