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.
7.4 Testfälle
http://pastebin.com/x9sSri8c
Uuund diese Zeilen fehlen aus unerklärlichen Gründen am Ende der Datei:
for (int i = grid[0].length; i >= 0; i--) {
System.out.print(i != 0 ? "--" : "---\n");
}
for (char[] row : grid) {
System.out.print("| ");
if (row != null) {
for (char field : row) {
System.out.print((field != 0 ? field : gridFill ? "." : " ") + " ");
}
}
System.out.println("|");
}
for (int i = grid[0].length; i >= 0; i--) {
System.out.print(i != 0 ? "--" : "---\n");
}
}
}
}
Was sind die zu erwartenen Ausgaben? Meine ist nämlich in ein bisschen komisch. Z.B. im zweiten Rätsel sind viele Wörter nicht durch eine Lücke voneinander getrennt.
Edit: Ja, ich merke grad, dass das mainTestBaby()-Rätsel bei mir überhaupt nicht ausgegeben wird, evaluateSpec(gridSpec, wordsSpec) ergibt nämlich Fehlermeldung 6, also angeblich überlagern sich irgendwelche Wörter
Edit2: Ich denke das Problem liegt daran, dass bei deinen Rätseln keine Zwischenräume zwischen den Einzelnen Wörtern sind. Bei mainTestBaby() beispielsweise gibt es ein solche Wortfelder. Ich hab mal versucht das darzustellen:
[b] [i][ ][/i][/b]
[b] [ ][i][ ][/i][ ][/b]
[b] [ ][i][ ][/i][ ][ ][ ][ ][/b]
[ ][ ][ ][ ][ ][ ]
Von oben nach unten geht ein Wort (die kursiven Kästchen), und von links nach rechts gehen drei Wörter (fett gedruckt). Und an diesen Haufen von Wörtern wird noch ein Wort von links nach rechts drangehangen. Wenn du das mal mit den Kreuzworträtseln des Lehrstuhls vergleichst, sieht man eindeutig, dass der Lehrstuhl Kreuzworträtsel erstellt hat, wo sich die Wörter, die die selbe Orientierung haben nicht so schneiden, wie bei dir, sondern Wörter die Horizonzal liegen schneiden sich höchstens mit Wörtern die Vertikal liegen.
Schau doch mal in den anderen Thread und frag da nach…
Dieselbe Frage wurde schon zumindest schon einmal von mir und ich glaube noch jemand anderem gestellt, wobei es noch keine Antwort gab.
Allerdings gehe ich davon aus, dass das Gitter nur dann falsch ist, wenn sich Positionen ueberschneiden, aber nicht, wenn sie direkt aneinander liegen. Vgl. die Spezifikation “wenn die Wortlaenge >=6 statt 4 waere, dann…” Das impliziert die Wortlaenge 5 ist noch in Ordnung, weshalb keine Luecken benoetigt werden. (Zumindest nach meinem Verstaendnis)
Ja, ist in Ordnung, wenn Woerter nur aneinander stoßen.
Ich habe mich etwas unklar ausgedrückt, ich meinte nämlich, dass das Wort, welches noch von rechts an diesen Block angehangen wird, auch einen Buchstaben von dem schon vorhandenen Wort verwendet. Z.B. steht schon Nürnberg geschrieben und links wird nun Datenstrukturen angehangen, also Datenstrukturenürnberg.
Nein, denn das wäre ja eine Überlappung.
wie soll denn die ausgabe bei mainTestBaby() aussehen ? weil bei mir funktioniert alles nur bei diesem testfall gibts bei setWord einen fehler aus
Ich hab mir die Testcases aus diesem Thread nicht angeschaut, aber die richtige Ausgabe der gegebenen Tests findest du auch hier:
https://www2.cs.fau.de/teaching/WS2014/AuD/uebungen/index.html
[CrosswordPuzzleExamplesOutput.txt]
ja schon, aber der mainTestBaby() wurde in diesem Test abgeändert und ich würde gerne wissen was hier in diesem Testfall als Ergebnis rauskommen soll
also bei mir gibt der erste test auch 6 zurück → Überschneidung
ok also soll dieses Gitter wahrscheinlich nicht lösbar sein. Wäre schön wenn der Ersteller des Testes das mal bestätigen könnte.
also dass wäre jetzt meine Ausgabe:
SOMEWHERE OVER THE RAINBOW, WAY UP HIGH; THERE'S A LAND THAT I HEARD OF ONCE IN A LULLABY
6
SOMEWHERE OVER THE RAINBOW, SKIES ARE BLUE; AND THE DREAMS THAT YOU DARE TO DREAM REALLY DO COME TRUE
-----------------------
| A L P H A E I |
| U F S |
| M F L U C H |
| E U L E H |
| C S E I |
| E C K I G F A N |
| E E L F E |
| W E L L E N W |
-----------------------
SCHEISSE, IN MEINEM KELLER LIEGT NE LEICHE ICH BINS NICH GEWESEN DOCH ICH KANN ES NICH BEWEISEN, SCHEISSE ÜBERALL IST BLUT DOCH ICH HAB ES NICH GETAN, WIE WERDE ICH SIE LOS, HAT DA JEMAND EINEN PLAN
-----------------------
| S I N G T |
| E I S O |
| R G C T |
| D R A C H E N I |
| E N U I G |
| T I T A N I K |
| B L U T A T |
-----------------------
Kontrolliere ob alle Wörter, besonders im dritten Rätsel, nur einmal vorkommen.
Die 6 kommt, weil ich den Test verändert habe, und zwar soll er mir das Ergebnis von evaluateSpec ausgeben.
DANKE vor allem für die letzte Zeile hier im Test, hatte zuerst das Wort “IGIT” 2 mal und dafür “BLUT” nicht, habe den Fehler dann schnell gefunden und behoben.
Alle drei Rätsel werden bei mir gelöst, Ausgabe schaut so aus:
[code]
SOMEWHERE OVER THE RAINBOW, WAY UP HIGH; THERE’S A LAND THAT I HEARD OF ONCE IN A LULLABY
| E L E F A N T L S |
| X S O S T |
| E I T E L N O T E N |
| L O M E G A I |
| S C H N U L L I N |
| S C H E U N E N E R V I G |
| D U D E N K G |
| E I S A U D |
| S P I E L E I M R I N G |
| I I O E A |
| N E R D L P B I E R |
K U H U P E |
---|
SOMEWHERE OVER THE RAINBOW, SKIES ARE BLUE; AND THE DREAMS THAT YOU DARE TO DREAM REALLY DO COME TRUE
| A L P H A E I |
| U F S |
| M F L U C H |
| E U L E H |
| C S E I |
| E C K I G F A N |
| E E L F E |
W E L L E N W |
---|
SCHEISSE, IN MEINEM KELLER LIEGT NE LEICHE ICH BINS NICH GEWESEN DOCH ICH KANN ES NICH BEWEISEN, SCHEISSE UEBERALL IST BLUT DOCH ICH HAB ES NICH GETAN, WIE WERDE ICH SIE LOS, HAT DA JEMAND EINEN PLAN
| S I N G T |
| E I S O |
| R G C T |
| D R A C H E N I |
| E N U I G |
| T I T A N I K |
B L U T A T |
---|
Kontrolliere ob alle Woerter, besonders im dritten Raetsel, nur einmal vorkommen.[/code]
ja ich habe jetzt die selbe ausgabe wie NatürlichesMineralwasserStill
ok hab den Fahler gefunden, der war in natürlich in meiner evaluateSpec drin… ;D