webtasks: Towers of Hanoi

kaktuskuchen
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 1. Okt 2007 22:34

webtasks: Towers of Hanoi

Beitrag von kaktuskuchen » 10. Dez 2007 15:42

Hallo!

Ich versuche gerade, ein paar Aufgaben aus dem Webtask zu lösen. Momentan hänge ich bei der Aufgabe "Rekursion - Türme von Hanoi".
Ich habe (meiner Meinung nach) einen korrekten Algorythmus und bin ihn auch schonmal per Hand durchgegangen. Ich vermute, dass meine Lösung nicht akzeptiert wird, weil mein Ausgabeformat der Lösungswege nicht stimmt.

Wie genau muss das aussehen? Aus dem einen Satz in der Aufgabenstellung werde ich nicht ganz schlau... Soll ich einfach einen zusammenhängenden Stream von Zahlen ausgeben, also z.b. 12132312313212, oder soll ich das in Zweiergruppen abgrenzen, also z.b. 12 13 23 12 31 32 12.
Ich würde sagen, dass der erste Vorschlag das gewünschte ist, aber so schaffe ich nicht einmal den ersten Test... Habe auch schon diverse andere Ausgabeformate versucht, aber ich komme nicht durch den ersten Test.

Und dann noch was: Was heißt "ausgeben"? Soll ich den String returnen oder in die console schreiben mit System.out.print. oder beides?

Help! Irgendjemand hat diese Aufgabe schon gelöst! Auch wenn die wahrscheinlichkeit recht gering ist, dass *du* das gerade liest - wenn du es liest, schreib mir doch bitte mal!

P.S.: Dieses Codechecker-Dingens ist doch auch ein wenig doof... Ich muss meinen Code ganz schön verkrüppeln, damit er akzeptiert wird... Hatte mehr damit zu tun, als mit der eigentlichen Problemlösung :-/

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Beitrag von Osterlaus » 10. Dez 2007 15:47

Ich habs schon mal implementiert, kriegs aber grad nicht mehr gebacken. Gerne kann ich dir aber von daheim aus die Delphi-Implementierung schicken.

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: webtasks: Towers of Hanoi

Beitrag von guido » 10. Dez 2007 15:53

kaktuskuchen hat geschrieben:Wie genau muss das aussehen? Aus dem einen Satz in der Aufgabenstellung werde ich nicht ganz schlau... Soll ich einfach einen zusammenhängenden Stream von Zahlen ausgeben, also z.b. 12132312313212, oder soll ich das in Zweiergruppen abgrenzen, also z.b. 12 13 23 12 31 32 12.


Ersteres. Der kurze Text ("ohne Leerzeichen und Returns") war wohl in der Tat nicht sehr hilfreich; er ist nun schon verbessert - und hoffentlich besser verständlich.
kaktuskuchen hat geschrieben: Ich würde sagen, dass der erste Vorschlag das gewünschte ist, aber so schaffe ich nicht einmal den ersten Test... Habe auch schon diverse andere Ausgabeformate versucht, aber ich komme nicht durch den ersten Test.


Wie genau sah denn die Ausgabe aus?
kaktuskuchen hat geschrieben:Und dann noch was: Was heißt "ausgeben"? Soll ich den String returnen oder in die console schreiben mit System.out.print. oder beides?
Per return zurückgeben; das geht aber auch aus <em>public static String hanoi</em> hervor :wink:
kaktuskuchen hat geschrieben:Help! Irgendjemand hat diese Aufgabe schon gelöst! Auch wenn die wahrscheinlichkeit recht gering ist, dass *du* das gerade liest - wenn du es liest, schreib mir doch bitte mal!/quote]

Die Wahrscheinlichkeit hat sogar lokal gerade an einem Maximum erreicht :wink:

[quote="kaktuskuchen"P.S.: Dieses Codechecker-Dingens ist doch auch ein wenig doof... Ich muss meinen Code ganz schön verkrüppeln, damit er akzeptiert wird... Hatte mehr damit zu tun, als mit der eigentlichen Problemlösung :-/
Was meinst Du damit...? (Beispiele helfen mehr :-))

Guido

kaktuskuchen
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 1. Okt 2007 22:34

Re: webtasks: Towers of Hanoi

Beitrag von kaktuskuchen » 10. Dez 2007 17:20

guido hat geschrieben:
kaktuskuchen hat geschrieben: Ich würde sagen, dass der erste Vorschlag das gewünschte ist, aber so schaffe ich nicht einmal den ersten Test... Habe auch schon diverse andere Ausgabeformate versucht, aber ich komme nicht durch den ersten Test.


Wie genau sah denn die Ausgabe aus?
Meine move-Methode hat das returned: 12132312313212 für den Aufruf move(3,1,2,3). An meinem kleinen Hanoi-Klötzchenspiel hab ich diese Legreihenfolge auch gerade verifizieren können. Ich habs auch mal für 5 Scheiben durchlaufen lassen und kam auf 12132312313212132321312312132312313212312321313212132312313212. Auch das konnte ich nachlegen.

Hier ist mal die Fehlerausgabe, die ich kriege:

Code: Alles auswählen

junit.framework.ComparisonFailure: Eingabe: Test 1 1 1 3 2 expected:<......> but was:<...2132...>
at junit.framework.Assert.assertEquals(Assert.java:81)
at TestHanoi.test(TestHanoi.java:45)
at TestHanoi$1.runTest(TestHanoi.java:21)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestCase.run(TestCase.java:111)
at webtasks.sandbox.RunnerThread.runTest(RunnerThread.java:142)
at webtasks.sandbox.RunnerThread.runTest(RunnerThread.java:133)
at webtasks.sandbox.RunnerThread.run(RunnerThread.java:206)
Test 1: 13
Gleich beim ersten Test wird abgebrochen... Leider sagt die mir nicht wo der Fehler liegt...
guido hat geschrieben:
kaktuskuchen hat geschrieben:Und dann noch was: Was heißt "ausgeben"? Soll ich den String returnen oder in die console schreiben mit System.out.print. oder beides?
Per return zurückgeben; das geht aber auch aus public static String hanoi hervor :wink:


naja :wink: String gibt den Rückgabewert an. Etwas ausgeben ist schon was anderes *grins*.
guido hat geschrieben:
kaktuskuchen hat geschrieben:P.S.: Dieses Codechecker-Dingens ist doch auch ein wenig doof... Ich muss meinen Code ganz schön verkrüppeln, damit er akzeptiert wird... Hatte mehr damit zu tun, als mit der eigentlichen Problemlösung :-/
Was meinst Du damit...? (Beispiele helfen mehr :-))
Guido
Mich im speziellen stört, u.A. dass ich keine Tabs verwenden darf zum Einrücken.
Ich muss lange Codezeilen umbrechen, was meiner Meinung nach die Lesbarkeit nicht erhöht (wobei man hier sicherlich streiten kann, ob dann nicht evtl mein Code schlecht ist).
Javadoc-Kommentare müssen im ersten Satz mit einem Punkt enden :shock:
und in meine Hanoi-Klasse musste ich einen Konstruktor implementieren, obwohl ich ihn gar nicht bräuchte. Zusätzlich *musste* dieser private sein. Wieder 2 Zeilen mehr Code :-/

Generell finde ich so eine "Style-Beratung" sehr gut (so wurde ich darauf aufmerksam gemacht, dass Parameter z.b. final gemacht werden könnten, da ich sie nicht ändere), aber dieses Programm finde ich ein wenig zu genau.

Ich fände es gut, wenn das Programm "Empfehlungen" gäbe oder man irgendwie die Optione hätte, den Code dennoch zu verwenden.

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: webtasks: Towers of Hanoi

Beitrag von guido » 11. Dez 2007 08:50

kaktuskuchen hat geschrieben: Meine move-Methode hat das returned: 12132312313212 für den Aufruf move(3,1,2,3). An meinem kleinen Hanoi-Klötzchenspiel hab ich diese Legreihenfolge auch gerade verifizieren können. Ich habs auch mal für 5 Scheiben durchlaufen lassen und kam auf 12132312313212132321312312132312313212312321313212132312313212. Auch das konnte ich nachlegen.
kaktuskuchen hat geschrieben:Gleich beim ersten Test wird abgebrochen... Leider sagt die mir nicht wo der Fehler liegt...
So ist der Fehler wirklich schwer zu finden. Kannst Du mir Deinen Code mal mailen (per PM hier im Forum, bitte nicht posten!)? Dann sehe ich vielleicht, woran das Problem liegt...
kaktuskuchen hat geschrieben: naja :wink: String gibt den Rückgabewert an. Etwas ausgeben ist schon was anderes *grins*.
Ich habe die Formulierung nochmal leicht angepasst. Hoffentlich ist es nun besser...?
kaktuskuchen hat geschrieben: Mich im speziellen stört, u.A. dass ich keine Tabs verwenden darf zum Einrücken.
Ich muss lange Codezeilen umbrechen, was meiner Meinung nach die Lesbarkeit nicht erhöht (wobei man hier sicherlich streiten kann, ob dann nicht evtl mein Code schlecht ist).
Javadoc-Kommentare müssen im ersten Satz mit einem Punkt enden :shock:
und in meine Hanoi-Klasse musste ich einen Konstruktor implementieren, obwohl ich ihn gar nicht bräuchte. Zusätzlich *musste* dieser private sein. Wieder 2 Zeilen mehr Code :-/
Checkstyle war nach dem letzten Update in der Tat sehr restriktiv eingestellt, das habe ich nun (etwas) angepasst. Nun sollten zwar viele Warnings, dafür aber weniger Errors erscheinen :)

Guido

kaktuskuchen
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 1. Okt 2007 22:34

Re: webtasks: Towers of Hanoi

Beitrag von kaktuskuchen » 11. Dez 2007 17:01

guido hat geschrieben:
kaktuskuchen hat geschrieben: naja :wink: String gibt den Rückgabewert an. Etwas ausgeben ist schon was anderes *grins*.
Ich habe die Formulierung nochmal leicht angepasst. Hoffentlich ist es nun besser...?
Jetzt finde ich es schön eindeutig (Entschuldigung, wenn ich zu eingebildet klang. War nicht so gemeint!)
guido hat geschrieben:
kaktuskuchen hat geschrieben: Mich im speziellen stört, u.A. dass ich keine Tabs verwenden darf zum Einrücken.
Ich muss lange Codezeilen umbrechen, was meiner Meinung nach die Lesbarkeit nicht erhöht (wobei man hier sicherlich streiten kann, ob dann nicht evtl mein Code schlecht ist).
Javadoc-Kommentare müssen im ersten Satz mit einem Punkt enden :shock:
und in meine Hanoi-Klasse musste ich einen Konstruktor implementieren, obwohl ich ihn gar nicht bräuchte. Zusätzlich *musste* dieser private sein. Wieder 2 Zeilen mehr Code :-/
Checkstyle war nach dem letzten Update in der Tat sehr restriktiv eingestellt, das habe ich nun (etwas) angepasst. Nun sollten zwar viele Warnings, dafür aber weniger Errors erscheinen :)
Cooli, so finde ich persönlich es sinnvoller :)

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: webtasks: Towers of Hanoi

Beitrag von guido » 11. Dez 2007 21:27

kaktuskuchen hat geschrieben: Jetzt finde ich es schön eindeutig (Entschuldigung, wenn ich zu eingebildet klang. War nicht so gemeint!)
Danke!
kaktuskuchen hat geschrieben: Cooli, so finde ich persönlich es sinnvoller :)
Gerne geschehen :)

Guido

Antworten

Zurück zu „Archiv“