AutoFeedback API

Result d4e40307-763b-4a62-90fd-90bb57ed9937

{
  "llm" : {
    "feedback" : "# Exercise: parking\n\n### Correctness\n- In `GroupCard` erlaubst du `person == 0` (weil du nur `person < 0` abweist). Laut Tabelle ist „bis 5“ zwar ein Tarifbereich, aber „0 Personen“ ist fachlich nicht sinnvoll und meist nicht als „Anzahl Personen“ gemeint.\n- `FlatRateCard` sammelt Parkzeit (`totalTime`) und setzt sie zurück, aber die Zeit hat keinen Einfluss auf die Kosten. Das ist nicht direkt verboten, aber es weicht vom „Abo mit fixen Monatskosten“ ab (ein Abo müsste nicht „parken“/Zeit erfassen, um 150 CHF zu kosten).\n\n### Suggestion\n- Überlege dir beim `GroupCard`-Konstruktor, welche Personenzahlen realistisch gültig sind (z.B. Mindestwert) und formuliere die Bedingung so, dass „nicht erlaubt“ wirklich alle ungültigen Fälle abdeckt.\n- Prüfe bei `FlatRateCard`, ob du wirklich einen Zeit-Zustand brauchst: Was bedeutet `reset()` bei einem Monatsabo in deinem Modell, und welche Daten sind dafür überhaupt nötig?\n\n### Code Style\n- In `FlatRateCard` ist `totalTime` effektiv ungenutzt für das Verhalten (weil `cost()` konstant ist). Das macht die Klasse unnötig komplex; entweder konsequent verwenden oder weglassen.\n- In `GroupCard`/`IndividualCard` fehlen `@Override`-Annotationen bei den Interface-Methoden (bei `GroupCard`/`IndividualCard` sind sie nicht da, bei `FlatRateCard` schon). Einheitlich `@Override` zu setzen hilft, Tippfehler bei Methodensignaturen früh zu finden.\n- Benennung: `person` klingt wie „eine Person“, gemeint ist aber „Anzahl Personen“; ein pluraler/sprechender Name (z.B. `persons`/`numberOfPersons`) verbessert die Lesbarkeit.\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- Deine Button-Klasse heisst `Button`, verlangt war aber explizit eine neue Klasse `ModeButton`.\n- In `SwissMapApp` ist `main` als `void main()` deklariert; damit wird es typischerweise nicht als Programmeinstieg erkannt (üblich ist eine `public static void main(String[] args)`-Methode).\n- `onMouseEnter`/`onMouseExit` in `City`, `Lake`, `Mountain` (und auch im Button) toggeln den Hover-Zustand mit `isHovered = !isHovered`; dadurch kann der Zustand nach mehreren Enter/Exit-Events falsch werden (z.B. wenn Enter/Exit nicht sauber paarweise auftreten).\n- Der Button nutzt `isHovered` zwar, aber in `draw` wird dieser Zustand gar nicht verwendet (Hover-Effekt ist damit nicht umgesetzt, obwohl `Hoverable` implementiert ist).\n\n### Suggestion\n- Benenne/erstelle die Button-Klasse so, wie in der Aufgabe gefordert, und prüfe dann, ob du sie wie vorgesehen als Komponente registrierst.\n- Schau dir an, welche Methodensignatur Java für den Einstiegspunkt erwartet, und passe deine `main`-Methode entsprechend an.\n- Überlege bei Hover: Welche Werte sollen `onMouseEnter` und `onMouseExit` jeweils *immer* setzen, statt “umschalten”? (Enter → Zustand an, Exit → Zustand aus.)\n- Wenn du `Hoverable` beim Button implementierst, gib dem Hover-Zustand auch eine sichtbare Auswirkung in `draw` (z.B. Farbe/Rahmen/Text leicht ändern), damit man das Hover-Verhalten wirklich prüfen kann.\n\n### Code Style\n- In `Button` ist das Feld `isHovered` aktuell ungenutzt (wird gesetzt, aber nie fürs Zeichnen/Verhalten verwendet) – entweder verwenden oder entfernen.\n- In `Button` sind die Imports sehr breit (`ch.trick17.gui.component.*`); gezieltere Imports machen den Code lesbarer.\n- In `Lake`/`Mountain` lädst du Bilder per `ImageIO` in ein `BufferedImage`, zeichnest aber dann mit `gui.drawImageCentered(\"...\")` per String-Pfad; das `BufferedImage img` ist dadurch nur für Breite/Höhe da und wirkt inkonsistent. Entweder konsequent über die Gui-Methoden arbeiten oder konsequent mit dem geladenen Bild (je nachdem, was die Bibliothek unterstützt).\n- Kleinigkeit: Schreibweise `\"Satelite\"` vs. `\"Satellite\"` (falls das UI-Label wichtig ist).\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"
  }
}