{
"llm" : {
"feedback" : "# Exercise: parking\n\n### Correctness\n- `GroupCard`: Der Tarif (`HOURLY_RATE`) ist als `static` deklariert. Dadurch teilen sich **alle** `GroupCard`-Objekte denselben Tarif, und der zuletzt konstruierte `GroupCard` setzt den Tarif für alle anderen mit – das verletzt die Idee, dass der Tarif pro Karte von der Personenanzahl abhängt.\n- `FlatRateCard`: `cost()` gibt immer 150 zurück, egal ob die Karte überhaupt „verwendet“ wurde. Je nach Aufgabenverständnis wird der Umsatz dann auch dann um 150 erhöht, wenn nie geparkt wurde (das kann den geforderten Gesamtumsatz verfälschen).\n\n### Suggestion\n- `GroupCard`: Überlege, ob der Stundentarif wirklich eine **Klassenvariable** sein soll oder ob jede Karte ihren eigenen Tarif speichern muss. Prüfe das Verhalten, wenn du zwei `GroupCard`s mit unterschiedlicher Personenanzahl registrierst und dann beide Kosten berechnen lässt.\n- `FlatRateCard`: Prüfe anhand des erwarteten Gesamtumsatzes (156.75 CHF), ob die Flatrate immer gerechnet werden soll oder ob sie an eine Bedingung geknüpft ist (z.B. nur wenn die Karte im Abrechnungszeitraum „aktiv“ war / mindestens einmal verwendet wurde). Teste dein aktuelles Verhalten mit den Beispiel-Parkzeiten und rechne nach, ob du auf 156.75 kommst.\n\n### Code Style\n- `GroupCard`: Parametername `Personen` beginnt groß; in Java sind Parameter/Variablen üblicherweise `camelCase` (z.B. `personen`).\n- `GroupCard`: `HOURLY_RATE` ist als Konstante benannt, aber nicht `final` und wird verändert; entweder konsequent als veränderliches Feld benennen oder wirklich als Konstante behandeln.\n- `FlatRateCard`: Leere Methoden (`park`, `reset`) sind ok, aber ein kurzer Kommentar, warum sie leer sind (Flatrate, keine Zeitabrechnung), würde die Intention klarer machen.\n\n\n# Exercise: labyrinth\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n\n\n# Exercise: swissmap\n\n### Correctness\n- `Lake` implementiert aktuell nicht `Hoverable` (Aufgabe c verlangt das für City, Lake und Mountain), d. h. beim Darüberfahren mit der Maus kann für Seen keine Beschreibung angezeigt werden.\n- `ModeButton` fehlt komplett (Aufgabe d): Es gibt keine Klasse, keinen registrierten Button als Komponente und keinen Klick-Handler, der den Satellitenmodus über `SwissMap.setSatelliteMode(...)` toggelt.\n- In `SwissMapApp` ist die `main`-Methode als `void main()` definiert; je nach Erwartung des Autotesters/Startmechanismus wird das Programm damit evtl. nicht als Java-Startpunkt erkannt (typisch wäre eine `public static void main(String[] args)`).\n\n### Suggestion\n- Schau dir `City`/`Mountain` als Vorlage an und übertrage dasselbe Hover-Konzept auf `Lake`: boolean “hovered”, `onMouseEnter/Exit`, und in `draw(...)` abhängig davon die Beschreibung zeichnen; zusätzlich in `getInteractiveArea(...)` einen passenden `Shape` für den See zurückgeben (z. B. `Rectangle` um das Icon oder eine eigene Form).\n- Für den `ModeButton`: Überlege dir zuerst, wo der Button auf der Karte sitzen soll (Koordinaten/GUI-Pixel) und welchen interaktiven Bereich er hat. Beim Linksklick solltest du den aktuellen Zustand von `map.isSatelliteMode()` umdrehen und dann `map.setSatelliteMode(...)` entsprechend setzen; dafür braucht der Button eine Referenz auf das `SwissMap`-Objekt im Konstruktor.\n- Wenn dein Setup über eine normale Java-Ausführung gestartet werden soll: Prüfe, ob deine `main`-Signatur exakt der erwarteten entspricht (insbesondere `static` und Parameter). Wenn ein Framework die Methode anders aufruft, orientiere dich an den Vorgaben der Aufgabe/Tests.\n\n### Code Style\n- In `Circle` sind Parameter wie `v`/`v1` sehr nichtssagend; bessere Namen (z. B. `px`, `py`) machen sofort klar, dass es um einen Punkt geht.\n- In `City` sind `r` und `offset` als Felder gespeichert, obwohl sie wie Konstanten wirken; wenn sie nicht verändert werden sollen, wären `static final` Konstanten lesbarer.\n- In `Lake.draw(...)` ist die Skalierung wahrscheinlich unabsichtlich an die komplette Kartenbreite gekoppelt (du verwendest denselben Scale-Faktor wie beim Hintergrundbild). Stilistisch wäre es klarer, eine eigene “Icon-Scale”/Konstante für die See-Grafik zu verwenden, statt die Hintergrund-Formel direkt zu übernehmen.\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"
}
}