Programme vorbereiten
Wenn du eine Aufgabe stellst, sollen über der eigentlichen Frage meist keine sechs Zeilen Vorbereitung stehen. Dafür gibt es eine Zeile, die mit #--- beginnt: Sie trennt die Vorbereitung vom sichtbaren Teil. Was davor steht (Hilfsfunktionen, Welt, Bilder), klappt für die Schüler:innen zu, und sie sehen nur das einfache Programm.
Die Regel
Eine Zeile ab #--- beginnt einen neuen Abschnitt. Steht ein Name dahinter, wird der Abschnitt auswählbar. Steht keiner dahinter, beginnt ab dort der sichtbare Teil.
Alles vor dem ersten Trenner ist die Vorbereitung. Sie läuft immer mit, egal welcher Abschnitt gewählt ist.
Ein Trenner
Was darüber steht, wird eingeklappt. Der sichtbare Teil beginnt wieder bei Zeile 1, auch Haltepunkte und Fehlermeldungen zählen so.
world("""
####
#@.#
####
""")
#---
move()
removeBerry()
Mehrere Ausgangslagen
Gibst du Trennern Namen, entstehen Reiter über dem Editor. Der sichtbare Teil bleibt beim Wechseln stehen – so probierst du dasselbe Programm an mehreren Situationen aus. In einem Link wählt ?block=Name den Abschnitt, mit dem es startet.
#--- Gerade
world("""
######
#@ . #
######
""")
#--- Mit Lücke
world("""
#######
#@ . #
# . #
#######
""")
#---
while not treeFront():
move()
if onBerry():
removeBerry()
Titel und Aufgabe
Steht als Erstes in der Vorbereitung ein Docstring, der mit Aufgabe: beginnt, zeigt CodeNatter ihn als Überschrift und Aufgabenstellung über dem Editor. Die erste Zeile ist der Titel, der Rest die Aufgabe. Im Teilen-Dialog unter „Aufgabe“ kannst du beides auch eintippen – CodeNatter schreibt es dann selbst ins Programm.
"""Aufgabe: Beeren sammeln
Kara soll bis zum Baum laufen und jede Beere aufheben.
"""
world("""
#######
#@ . .#
#######
""")
#---
while not treeFront():
move()
Die Aufgabe ist reiner Text: Zeilenumbrüche bleiben, Formatierung gibt es nicht. Weil sie im Programm steht, wandert sie mit jedem Link mit – gespeichert wird nichts.
Gut zu wissen
- Es bleibt echtes Python.
#---ist ein gewöhnlicher Kommentar, der Docstring eine Zeichenkette, die nichts tut. Kopierst du dein Programm in eine .py-Datei, läuft es. Bei mehreren Abschnitten laufen sie nacheinander, der letzte gewinnt. - Eingeklappt heißt nicht versteckt. Ein Klick auf den grauen Balken zeigt die Vorbereitung. Sie dient der Übersicht, nicht der Geheimhaltung. Tritt dort ein Fehler auf, klappt sie von selbst auf.
- Vergisst du den letzten Trenner – den ohne Namen –, wird gar nichts eingeklappt und du siehst dein ganzes Programm. Lieber zu viel zeigen als zu wenig.
- Angehängte Striche sind erlaubt:
#--- Gerade ---geht genauso wie#--- Gerade. - Gedruckt wird nur, was zu sehen ist: Eine eingeklappte Vorbereitung erscheint nicht auf dem Blatt, die Reiter auch nicht.