{
"llm" : {
"feedback" : "# Exercise: parking\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n\n\n# Exercise: labyrinth\n\n### Correctness\n- Du hast keine der geforderten Klassen `StupidAlgorithm`, `TryStraightFirst` und `BacktrackingAlgorithm` implementiert, die das Interface `NaviAlgorithm` implementieren sollen.\n- In `LabyrinthApp.main()` bleibt `NaviAlgorithm navi = null;` unverändert; damit wird kein Algorithmus ausgeführt und das Spiel wirft am Ende pro Level `GameOver(\"Ziel nicht gefunden.\")`.\n- Die Aufgabe verlangt explizit, dass du in `LabyrinthApp` beim `TODO` ein Algorithmus-Objekt erstellst (zuerst `StupidAlgorithm`, später ersetzen) – das ist nicht passiert.\n\n### Suggestion\n- Lege zuerst eine neue Klasse im gleichen Package `ch.fhnw.prog1.exercise.labyrinth` an, die `NaviAlgorithm` implementiert, und implementiere dort `navigate(Figure figure)` genau nach Teil (a): Schleife bis `isGoalReached()` true ist, und in der Schleife nur „geradeaus“ laufen.\n- Sobald das klappt: Ersetze in `LabyrinthApp` beim `TODO` das `null` durch eine Instanz deines Algorithmus, sonst wird `navigate(...)` nie aufgerufen.\n- Für Teil (b): Überlege dir pro Schleifendurchlauf eine feste Priorität der Richtungen (z.B. zuerst ahead prüfen, sonst links, sonst rechts, sonst umdrehen) und setze die nötigen Turns so um, dass die Figur danach wirklich in die gewählte Richtung zeigt, bevor du `moveForward()` aufrufst.\n- Für Teil (c): Wenn du „Backtracking“ umsetzen willst, brauchst du irgendeine Form von „merken, wo du schon warst / welche Abzweigungen du schon ausprobiert hast“ (z.B. Stack/Markierungen über Position+Richtung), damit du Sackgassen zuverlässig wieder zurücklaufen kannst.\n\n### Code Style\n- Dein Attempt enthält praktisch nur die unveränderte Vorlage; eigene Lösungsdateien/Klassen fehlen komplett. Dadurch ist auch nicht erkennbar, wo dein eigentlicher Lösungsansatz wäre.\n- In `LabyrinthApp` ist `navi` als `null` stehen geblieben; selbst für Zwischenschritte lohnt es sich, diesen TODO früh zu ersetzen, damit du iterativ testen kannst.\n\n\n# Exercise: swissmap\n\n### Correctness\n- `City`, `Lake` und `Mountain` implementieren zwar `Hoverable`, aber `getInteractiveArea(Gui gui)` gibt überall `null` zurück; damit gibt es keinen interaktiven Bereich und `onMouseEnter`/`onMouseExit` werden nicht ausgelöst, also funktioniert das “Hover zeigt Beschreibung”-Feature nicht.\n- Beim Hover wird aktuell nur das Aussehen (Grösse/Icon) geändert; die Aufgabe verlangt aber explizit, dass beim Darüberzeigen die **Beschreibung** angezeigt wird (z.B. via `toString()` in `draw` abhängig vom Hover-Zustand).\n- Teil d) fehlt komplett: Es gibt keine Klasse `ModeButton`, sie wird nicht als Komponente hinzugefügt und es gibt keine Klick-Logik, die `setSatelliteMode(...)` auf dem `SwissMap`-Objekt umschaltet.\n\n### Suggestion\n- Überlege dir für jedes Objekt, welche Fläche “anklick-/hoverbar” sein soll (z.B. ein Rechteck um Icon/Text oder um den Punkt) und gib in `getInteractiveArea(gui)` ein passendes `Shape` mit Koordinaten **in GUI-Pixeln** zurück (also mit `coord.toGuiX/Y(gui)` arbeiten).\n- Nutze deinen `hover`-Boolean nicht nur für anderes Zeichnen, sondern auch um in `draw` zusätzlich Text zu zeichnen (z.B. Namen/`toString()` neben dem Objekt oder als Label).\n- Für den Button: Du brauchst ein eigenes Objekt, das `Drawable`, `Hoverable` und `Clickable` implementiert und eine Referenz auf die `SwissMap` hält; beim Linksklick dann den aktuellen Modus umschalten (nicht nur auf `true` setzen).\n\n### Code Style\n- In `SwissMapApp` rufst du in den Schleifen `getInteractiveArea(gui)` manuell auf; das ist konzeptionell unnötig (die GUI fragt das selbst ab) und kann verwirren – besser weglassen.\n- In `Lake`/`Mountain` sind `import static ch.fhnw.prog1.exercise.swissmap.SwissMap.*;` sehr breit; gezieltere Imports (nur `WIDTH`, `BG_PIXEL_WIDTH`, `scale`) machen Abhängigkeiten klarer.\n- In `City.draw` setzt du keine Farbe; je nach Default kann das uneinheitlich wirken. Wenn du visuell reproduzierbar sein willst, setze Farben explizit in `draw`.\n\n\n# Exercise: visualizer\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n",
"status" : "SUCCESS"
}
}