Kara
Kara ist ein Marienkäfer, der auf einem Gitter läuft, Beeren einsammelt und um Bäume herum muss. Im deutschsprachigen Raum ist er seit langem beliebt, um das Programmieren zu lernen; erdacht wurde er von SwissEduc. CodeNatter nutzt die Schreibweise aus dem Buch: erst die Welt mit world("""…"""), dann die Befehle – ohne Import.
Was Kara kann
Diese Befehle verändern die Welt:
move() | einen Schritt nach vorn |
turnLeft() | nach links drehen |
turnRight() | nach rechts drehen |
putBerry() | eine Beere ablegen |
removeBerry() | eine Beere aufheben |
Diese fragen die Welt ab und liefern True oder False:
onBerry() | Stehe ich auf einer Beere? |
treeFront() | Ist vor mir ein Baum? |
treeLeft() | Ist links von mir ein Baum? |
treeRight() | Ist rechts von mir ein Baum? |
mushroomFront() | Ist vor mir ein Pilz? |
Läuft Kara gegen einen Baum oder schiebt sie einen Pilz gegen eine Wand, bricht das Programm mit einer Fehlermeldung ab. Unter Karas Welt im Editor steht dieselbe Liste zum Aufklappen.
Kara läuft absichtlich gemächlich, damit man ihr zusehen kann. Wird das bei einem längeren Programm lästig, stellst du unter der Welt das Tempo höher – auch mitten im Lauf. Das gehört zum Zusehen und nicht zum Programm: Es wandert nicht mit dem Link.
Schon bevor das Programm läuft, zeigt CodeNatter die Welt aus world(…). Nach „Stop“ steht Kara wieder am Anfang.
Die Zeichen
@ | Kara |
# | Baum |
. | Beere |
+ | Kara auf einer Beere |
$ | Pilz |
* | Pilz auf einer Beere |
Leerzeichen | leeres Feld |
Die Schreibweise ist kompatibel zu GreenfootKara und den Pygame-Zero-Tutorials. Ein Zeilenumbruch direkt nach """ zählt nicht als Reihe.
Welt zusammenklicken
Statt die Zeichen abzuzählen, kannst du die Welt hier bauen und den fertigen Aufruf übernehmen. Umgekehrt geht es auch: eine vorhandene Welt ins Textfeld kopieren und ansehen, was darin steht. Die Dinge lassen sich stapeln – erst eine Beere, dann ein Pilz darauf ergibt *, erst eine Beere, dann Kara ergibt +. Ein zweiter Klick nimmt wieder weg.
Aufgaben daraus bauen
Die Welt gehört in die Vorbereitung: Mit #--- klappst du sie ein, sodass nur die eigentliche Aufgabe sichtbar bleibt. Mehrere benannte Abschnitte ergeben mehrere Ausgangslagen – siehe Programme aufteilen.