Prozeduren und Funktionen

Wenn die Programme bzw. Skripte umfangreicher werden läuft man Gefahr den Überblick zu verlieren. Außerdem kann es passieren, das gleiche oder ähnliche Programmteile an verschiedenen Stelle benötigt werden und mehrfach implementiert werden. In allen Programmiersprachen gibt es dazu Möglichkeiten dies zu mit Hilfe von besonderen Strukturen zu vermeiden. Man nutzt dazu so genannte Prozeduren und Funktionen. In objektorientierten Programmiersprachen fasst man dies unter dem Begriff Methode zusammen. In Snap! kann man Prozeduren und Funktionen umsetzen, indem man eigene Blöcke definiert.

einfache Prozeduren

Angenommen ein Programm soll an 3 verschiedenen vorgegebenen Stellen ein Quadrat mit der Seitenlänge von 50 Pixeln zeichnen. Ein mögliches Programm sähe z. B. so aus:

Bei dem Programm fällt auf, dass sich einzelne Programmabschnitte, nämlich das Zeichnen des Quadrats (hier rot markiert) immer wiederholen. Da die die Positionen der Quadrate aber keinem Schema folgen, sondern frei gewählt sind, wird man den gesamten Algorithmus nicht durch eine dreifache Wiederholung vereinfachen können.
Stattdessen wäre es hilfreich, wenn es einen eigenen Block für den rot markierten Teil gäbe. Genau das werden wir nun tun. Dazu gibt es am unteren Ende aller Blöcke in den Kategorien die Schaltfläche . Die folgende Animation zeigt wie man zur Erstellung des Blocks vorgehen muss.

Wir haben nun einen eigenen Block erzeugt, der von der aktuellen Position und Richtung des Sprites aus ein Quadrat mit der Kantenlänge von 50 Schritten zeichnet. Damit vereinfacht sich das ursprüngliche Programm und wird vor allem viel übersichttlicher und besser lesbar:

Durch Rechtsklick auf den neuen Block erhält man übrigens die Möglichkeit, das Programm des Blocks nachträglich zu verändern.

Implementiere im folgenden Programmfenster den oben gezeigten Block .
Erstelle außerdem einen neuen Block, der ein gleichseitiges Dreieck mit einer Seitenlänge von 100 Schritten zeichnet und
einen Block, der das Haus vom Nikolaus in der Breite von 60 Schritten zeichnet.
Es spielt übrigens keine Rolle, in welcher Kategorie, du einen neuen Block erstellst. Sinnvollerweise sollten die neu erstellten Blöcke aber zu der Kategorie passen, um sie später wieder zu finden. Wenn du also z.B. einen Block erstellst, der etwas zeichnet, ist die Kategorie Stift geeignet.
Zum schnellen Finden von Blöcken gibt es eine Suchfunktion: