## 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 von `while not kara.treeFront():`. *(Führt zu Endlosschleifen ohne Fehlermeldung!)* * **Einrückung vergessen (`IndentationError`):** Der Code innerhalb von `while` oder `if` muss 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.