Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Scratchpad
Zu writeStringToScratchpad(…): Was soll passieren, wenn der String zu lang ist: abschneiden oder gar nichts ausgeben? Oder eher so wie damals bei Snake ?
Ein eher kleiner Punkt aber:
ist nicht ganz konsistent. Den Testfällen nach zu schließen soll das Scratchpad tatsächlich width Zeilen und height Spalten haben. Entsprechend müsste es heißen:
usw. Oder nicht?
Du kannst in der Methode writeStringToScratchpad() eine andere von dir implementierte Methode wiederverwenden. Die Aufgabenstellung zu dieser Methode verrät dir dann, was eine mögliche Lösung für das Problem wäre, wenn der String zu lang ist.
Der zweite Hinweis ist meines Erachtens richtig. Halte dich am besten an die Testfälle und an die Aufgabenstellung vom Teil a), dort wird am Beispiel mit 30 Spalten und 80 Zeilen genau beschrieben, wo die Grenzen liegen.
Naja, nein. Schon klar: wenn ich ich mich um Grenzen und Längen nicht schere und stur die drawCharacter-Methode den String schreiben lasse, dann wird dieser gegebenenfalls einfach abgeschnitten.
Aber nur weil es die einfachste Lösung ist, muss es ja noch nicht die gewünschte sein. Ich wollte eigentlich nur darauf hinweisen, dass es hier eine Lücke in der Spezifikation gibt.
Zu Fragen hinsichtlich der Spezifikation wende dich bitte am besten mit deinem Anliegen an die Adresse aud@i2.cs.fau.de
Die lesen hier doch mit Zumindest war das zu meiner Zeit so.
Ansonsten hat sich wohl in testWriteString() sowieso ein Fehler eingeschlichen. Die Abbruchbedingung der Schleife sollte vermutlich i < func.length() sein.
for(int x = 58, i = 0; x < func.length(); x++, i++){
assertTrue(PlotFunctions.scratchpad[x][26] == func.charAt(i));
}
Hey, cool, dass du wieder da bist.
Was die Dozenten angeht: Sie lesen zwar sicher immer noch mit, aber ich denke nicht, dass sie die Musterlösungen verraten. Und bei der Frage ist es imo. echt schwierig, zu helfen und nicht zu viel zu verraten.
Da hast du sicher Recht, das Durchlaufen von x = 58 bis x = 13 unter x++ macht für mich auch wenig Sinn.
Da hast du durchaus Recht, ist gemeldet und sollte irgendwann gefixt werden.
Das sollte doch eigentlich eindeutig genug sein.
Beim zweiten Punkt hast du allerdings Recht, da fehlen in den Anmerkungen im Code die -1 jeweils.
Die Frage von a_hinterstoisser war aber, ob / wann man eine dieser 2 Methoden überhaupt aufrufen soll, wenn eine OOB-Exception passiert.
- Option: Man ruft die Methode immer auf und verändert scratchpad für alle Indizes, die nicht out of bounds sind.
- Option: Man ruft die Methode nur dann auf, wenn die Grenzen stimmen, und verändert scratchpad beim Auftreten eines OOB-Index gar nicht.
Ich glaube, dass das aus der Aufgabenstellung in der Tat nicht ganz hervorgeht.
Ja stimmt, ist an der Stelle uneindeutig.
Option 1 ist die Methode der Wahl.
Hallo,
die Aufgabenstellung sagt doch ganz klar, dass nur zwei Methoden auf das Array scratchpad schreiben dürfen: Das wären newScratchpad und eben drawCharacter. In Teilaufgabe b) sollen bei der Implementierung der Methode drawChracter auch die übergebenen Koordinaten überprüft werden (damit hat man also den Bereichstest). Keine andere Methode darf direkt auf das Array schreiben.
Der Fehler im Testfall wurde bereits behoben. Die -1 fehlt im Kommentar tatsächlich, das werde ich noch anpassen. Danke für die Hinweise!