Kapitel 2
Kapitel 2: Karel programmieren
Das einfachste Karel-Programm ist eine Folge von Textbefehlen. Beim Ausführen liest Karel diese Befehle von oben nach unten und verändert dadurch Schritt für Schritt seine Welt. In diesem Kapitel zerlegen wir ein erstes Programm in seine Bestandteile.
Normalerweise schreibt man Programme in einer Entwicklungsumgebung. Unser Reader übernimmt für den Anfang dieselbe Rolle: Du kannst Code direkt auf der Seite ausprobieren und sofort sehen, was mit Karel passiert.
Ein erstes Programm
Dieses kleine Programm bewegt Karel zum Beeper, hebt ihn auf und geht anschließend ein Feld weiter:
# Karel hebt einen Beeper auf und geht danach weiter.
from karel import *
def main():
move()
pick_beeper()
move()Obwohl das Programm kurz ist, enthält es bereits die wichtigsten Bausteine, die du immer wieder sehen wirst: Kommentare oder erklärender Text, einen Import, eine Funktion namens main() und eine eingerückte Befehlsfolge.
Kommentare und Import
Zeilen, die mit # beginnen, sind Kommentare. Karel führt sie nicht aus; sie helfen Menschen, den Plan hinter einem Programm zu verstehen. Bei sehr kleinen Programmen wirkt das manchmal übertrieben, aber bei größeren Aufgaben sind gute Kommentare ein wichtiger Teil sauberer Programmierung.
# Karel hebt einen Beeper auf und geht weiter.
from karel import *Die Importzeile macht die Karel-Befehle verfügbar. Ohne sie würde Python Befehle wie move() oder pick_beeper() nicht kennen.
Die Funktion main()
Mit def main(): definierst du die Funktion, die beim Start des Programms ausgeführt wird. Die Zeile mit def ist der Kopf der Funktion. Alles, was eingerückt darunter steht, gehört zum Körper der Funktion.
def main():
move()
pick_beeper()
move()Die Einrückung ist in Python nicht Dekoration, sondern Bedeutung. Sie sagt: Diese Befehle gehören zusammen und werden ausgeführt, wenn main() gestartet wird.
Ein interessanteres Problem
Ein einzelner Beeper ist noch keine große Herausforderung. Spannender wird es, wenn Karel den Beeper an einen neuen Ort bringen soll. Die Aufgabe unten orientiert sich an der Idee aus dem Originalkapitel: Karel sammelt einen Beeper auf, steigt auf eine höhere Reihe, legt den Beeper dort ab und geht danach weiter.
An einer Stelle braucht Karel eine Rechtsdrehung. Wenn du nur turn_left() verwenden möchtest, kannst du rechts abbiegen, indem du dich dreimal links drehst. Genau das ist ein erster Programmiergedanke: Du hast nicht immer den perfekten Befehl, aber du kannst ihn aus vorhandenen Befehlen zusammensetzen.
Ausprobieren
Aufgabe
Beeper auf die Reihe legen
Karel soll den Beeper einsammeln, auf die höhere Reihe steigen, den Beeper in die Mitte der Reihe legen und danach ein Feld weitergehen.
Ziel
- Karel soll am Ende in Spalte 5, Zeile 2 stehen.
- Karel soll nach Osten schauen.
- In der Welt sollen 1 Beeper liegen.
- Karel soll keine Beeper in der Tasche haben.
Karel-Welt
Aktuelle Welt
5 x 3
Blick nach Osten
1,1
2,1Karel-Welt
Zielwelt
5 x 3
Blick nach Osten
4,2
5,2Aktuell unterstützt der Runner Karel-Befehle, eigene Funktionen und einfache for- und while-Schleifen.
Feedback
Schritte: 0
Status: Noch nicht gelöst