{
"llm" : {
"feedback" : "# Exercise: fractal\n\n### Correctness\n- In `Boxes`, die rekursive Methode `drawRec(...)` ist nicht implementiert, dadurch wird nichts gezeichnet.\n- In `Triangles`, die rekursive Methode `drawRec(...)` ist nicht implementiert, dadurch wird nichts gezeichnet.\n\n### Suggestion\n- Für `Boxes.drawRec(...)`: Überlege dir eine klare Abbruchbedingung für `n` (Basisfall), in der du tatsächlich ein Rechteck zeichnest (mit `g.drawRect(...)`), und einen Rekursionsfall, in dem du die Fläche in kleinere Teil-Rechtecke zerlegst und `drawRec(...)` mit reduziertem `n` aufrufst.\n- Für `Triangles.drawRec(...)`: Definiere ebenfalls einen Basisfall, in dem du die drei Kanten des Dreiecks mit `g.drawLine(...)` zeichnest, und im Rekursionsfall berechnest du die Mittelpunkte der Dreiecksseiten, um daraus die kleineren Dreiecke zu bilden, die du rekursiv weiterzeichnest.\n\n### Code Style\n- Die `// TODO implement`-Kommentare sind ok während der Bearbeitung, aber sobald du fertig bist, sollten sie entfernt oder durch kurze erklärende Kommentare ersetzt werden, was der Rekursionsschritt macht (z.B. “split into 4 sub-squares” / “compute midpoints and recurse”).\n\n\n# Exercise: knapsack\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n\n\n# Exercise: sudoku\n\n### Correctness\n- `SudokuSolverImpl.solved(SudokuModel model, int fieldNr)` ist nicht implementiert und liefert immer `false`, damit kann kein Sudoku gelöst werden.\n- `SudokuSolverImpl.nofSolutions(SudokuModel model, int fieldNr, int max)` ist nicht implementiert und liefert immer `0`, damit werden nie Lösungen gezählt.\n- `Sudoku.java` hat keine gültige Java-Entry-Point-Signatur: `main` ist weder `public static` noch hat es `String[] args`, dadurch startet die Applikation typischerweise nicht wie erwartet.\n\n### Suggestion\n- Für `solved(...)`: Überlege dir eine Rekursion über alle Felder (z.B. über `fieldNr` von 0 bis `size*size`) mit einem klaren Abbruchfall “alle Felder abgearbeitet”. Für jedes Feld: wenn schon belegt → weiter zum nächsten; wenn leer → Werte 1..size probieren, nach jedem Setzen mit `checker.oneOK(...)` prüfen, und bei Misserfolg wieder zurücksetzen (`clear`).\n- Für `nofSolutions(...)`: Nutze dieselbe Traversierung wie beim Lösen, aber statt beim ersten Fund aufzuhören, zählst du alle gültigen vollständigen Belegungen. Achte darauf, dass du beim Rekursionsaufruf das verbleibende Limit (`max`) korrekt reduzierst, damit bei `MAX` sauber abgebrochen wird.\n- Für `Sudoku.main`: Schau dir an, welche Methodensignatur Java als Startpunkt erwartet (Zugriff, `static`, Parameter), und passe deine Methode daran an.\n\n### Code Style\n- In `SudokuSolverImpl.solved(...)` fehlt sogar ein `// TODO implement`/Kommentar, während es in `nofSolutions(...)` vorhanden ist – konsistent markieren hilft beim eigenen Überblick.\n\n\n# Exercise: queens\n\nLlm Evaluation ist für diese Aufgabe deaktiviert. Entferne die .llmignore Datei vom Package der Aufgabe.\n",
"status" : "SUCCESS"
},
"unitTest" : {
"tests" : [ {
"name" : "allZero()",
"status" : "PASSED",
"message" : null
}, {
"name" : "uselessStuff()",
"status" : "PASSED",
"message" : null
}, {
"name" : "random1()",
"status" : "FAILED",
"message" : "expected: <190> but was: <0>"
}, {
"name" : "random2()",
"status" : "FAILED",
"message" : "expected: <340> but was: <0>"
}, {
"name" : "random3()",
"status" : "FAILED",
"message" : "expected: <558> but was: <0>"
}, {
"name" : "boardIsValidAfterSolveN4()",
"status" : "FAILED",
"message" : "Board must contain exactly N queens ==> expected: <4> but was: <0>"
}, {
"name" : "boardIsValidAfterSolveN5()",
"status" : "FAILED",
"message" : "Board must contain exactly N queens ==> expected: <5> but was: <0>"
}, {
"name" : "boardIsValidAfterSolveN8()",
"status" : "FAILED",
"message" : "Board must contain exactly N queens ==> expected: <8> but was: <0>"
}, {
"name" : "boardSizeIsCorrectForN4()",
"status" : "PASSED",
"message" : null
}, {
"name" : "boardSizeIsCorrectForN8()",
"status" : "PASSED",
"message" : null
}, {
"name" : "countN1()",
"status" : "FAILED",
"message" : "N=1 has exactly 1 solution ==> expected: <1> but was: <0>"
}, {
"name" : "countN2()",
"status" : "PASSED",
"message" : null
}, {
"name" : "countN3()",
"status" : "PASSED",
"message" : null
}, {
"name" : "countN4()",
"status" : "FAILED",
"message" : "N=4 has exactly 2 solutions ==> expected: <2> but was: <0>"
}, {
"name" : "countN5()",
"status" : "FAILED",
"message" : "N=5 has exactly 10 solutions ==> expected: <10> but was: <0>"
}, {
"name" : "countN6()",
"status" : "FAILED",
"message" : "N=6 has exactly 4 solutions ==> expected: <4> but was: <0>"
}, {
"name" : "countN8()",
"status" : "FAILED",
"message" : "N=8 has exactly 92 solutions ==> expected: <92> but was: <0>"
}, {
"name" : "solveReturnsTrueForN1()",
"status" : "FAILED",
"message" : "N=1 has exactly one solution ==> expected: <true> but was: <false>"
}, {
"name" : "solveReturnsTrueForN4()",
"status" : "FAILED",
"message" : "N=4 has valid queen placements ==> expected: <true> but was: <false>"
}, {
"name" : "solveReturnsTrueForN8()",
"status" : "FAILED",
"message" : "N=8 has valid queen placements ==> expected: <true> but was: <false>"
}, {
"name" : "solveReturnsFalseForN2()",
"status" : "PASSED",
"message" : null
}, {
"name" : "solveReturnsFalseForN3()",
"status" : "PASSED",
"message" : null
} ]
}
}