Kara Python Cheat Sheet
Aktionen (Befehle)
Aktionen verändern Karas Position oder die Welt.
| Befehl | Wirkung |
|---|---|
kara.move() | Geht 1 Feld nach vorne. |
kara.turnLeft() | Dreht um 90° nach links. |
kara.turnRight() | Dreht um 90° nach rechts. |
kara.putLeaf() | Legt ein Kleeblatt ab (Fehler, falls bereits ein Blatt da ist). |
kara.removeLeaf() | Nimmt ein Kleeblatt auf (Fehler, falls kein Blatt da ist). |
Sensoren (Fragen)
Sensoren testen Karas Umgebung und geben immer einen Boolean-Wert (True oder False) zurück.
| Sensor | Bedingung ist True, wenn… |
|---|---|
kara.treeFront() | … direkt vor Kara ein Baum steht. |
kara.treeLeft() | … links von Kara ein Baum steht. |
kara.treeRight() | … rechts von Kara ein Baum steht. |
kara.mushroomFront() | … direkt vor Kara ein Pilz steht. |
kara.onLeaf() | … Kara auf einem Kleeblatt steht. |
Kontrollstrukturen
Schleife (Iteration)
Wiederholt den eingerückten Code, solange die Bedingung wahr ist:
while not kara.treeFront(): kara.move()
Verzweigung (Selektion)
Führt Code nur aus, falls eine Bedingung erfüllt ist:
if kara.onLeaf(): kara.removeLeaf() else: kara.putLeaf()
Logische Verknüpfungen
| Operator | Bedeutung | Beispiel |
|---|---|---|
not | Negation (Umdrehen) | not kara.onLeaf() (Kein Blatt) |
and | Konjunktion (Beide True) | kara.treeLeft() and kara.treeRight() (Tunnel) |
or | Disjunktion (Mind. eins True) | kara.treeLeft() or kara.treeRight() (Wand nahe) |
Auswertungsreihenfolge (Rangfolge): not bindet stärker als and, and bindet stärker als or. Nutze Klammern () zur Klarheit!
Variablen & Ausgabe
count = 0 # Zahl-Variable deklarieren count = count + 1 # Wert um 1 erhöhen print("Gefunden:", count) # Text und Wert in der Konsole ausgeben
⚠️ Die 3 häufigsten Fehler
- Klammern vergessen bei Funktionen:
while not kara.treeFront:anstelle vonwhile not kara.treeFront():. (Führt zu Endlosschleifen ohne Fehlermeldung!) - Einrückung vergessen (
IndentationError): Der Code innerhalb vonwhileoderifmuss mit Tab eingerückt sein. - Aktion mit Sensor verwechseln:
kara.move()lässt Kara laufen;kara.treeFront()prüft nur, ob ein Hindernis da ist, ohne Kara zu bewegen.