## 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.