Seite 4 von 4

Re: Hausübung 9

Verfasst: 18. Jan 2008 00:16
von Krümelmonster
Ah, Ok.
Ich wusste nicht, dass es einen Unterschied gibt.

Anscheinend ist die Linux Console nicht ANSI fähig.
Bekomme nur ein:
Gleich bin ich weg.
[2J

Re: Hausübung 9

Verfasst: 19. Jan 2008 19:21
von evel
was macht denn dieses this (7,6) im parameterlosen konstruktor?

Re: Hausübung 9

Verfasst: 19. Jan 2008 19:34
von MarkusS
es ruft den Konstruktur ConnectFour(int width, int height) auf

Re: Hausübung 9

Verfasst: 20. Jan 2008 09:13
von guido
MarkusS hat geschrieben:es ruft den Konstruktur ConnectFour(int width, int height) auf
Genau; "this(...)" ist ein Konstruktor-Aufruf in der gleichen Klasse, so wie "super(...)" ein Konstruktor-Aufruf in der Oberklasse ist.

Guido

Re: Hausübung 9

Verfasst: 20. Jan 2008 10:33
von ChRiZz88
Aufgabe 2, letzter Teil:
"Überprüfen Sie für die Parameter, ob die übergebenen Werte sinnvoll sind
und weisen Sie auf etwaige Fehleingaben mit System.err.append("[Ihr Fehlerhinweis]")
hin."

1.) Soll in jeder Methode, die man am Ende hat, für jeden Parameter geprüft werden, ob die Werte sinnvoll sind? Oder reicht es auch, bei Aufgabe 6.) falsche Benutzereingaben abzufangen? Damit wird ja sichergestellt, dass auch die Parameter jeder Funktion sinnvoll sind, bei mir zumindest...
2.) Kann man statt System.err.append(..) auch System.err.println nehmen? Dann macht er wenigstens noch einen Zeilenumsprung und das Resultat ist sonst das selbe^^

Dann noch ne Frage bzgl. Methodenlänge:
In der letzten Übung stand etwas von 5-10 Zeilen Code pro Methode; für diese Übung hab' ich was von 15 Zeilen Maximum gehört.. Zählen da die durch Formatierung entstandenen "}"-Zeilen mit? Oder nur die, wo wirklich was gemacht wird? Zudem ergibt sich jetzt die Situation, dass meine playGame() aufgrund von ein paar ifs ca. 20 Zeilen hat, ist das okay? Ist ja auch ne ziemlich wichtige Methode und die vorgefertigte toString hat ja auch mehr =)

Re: Hausübung 9

Verfasst: 20. Jan 2008 11:54
von Wambolo
also in der Aufgabenstellung steht ja nichts von stepwise refinement und max. Codelänge, von daher wäre es wohl ziemlich unfair dafür Punkte abzuziehen, aber wenn du angst hast, dann lagere doch einfach einen teil aus playgame aus.

Re: Hausübung 9

Verfasst: 20. Jan 2008 11:56
von mantra
ChRiZz88 hat geschrieben:Aufgabe 2, letzter Teil:
"Überprüfen Sie für die Parameter, ob die übergebenen Werte sinnvoll sind
und weisen Sie auf etwaige Fehleingaben mit System.err.append("[Ihr Fehlerhinweis]")
hin."

1.) Soll in jeder Methode, die man am Ende hat, für jeden Parameter geprüft werden, ob die Werte sinnvoll sind? Oder reicht es auch, bei Aufgabe 6.) falsche Benutzereingaben abzufangen? Damit wird ja sichergestellt, dass auch die Parameter jeder Funktion sinnvoll sind, bei mir zumindest...
Da mindestens die vorgegebenen Methoden alle "public" sind, ist es ganz und gar nicht gewährleistet, dass die Parameter immer sinnvoll übergeben werden.
2.) Kann man statt System.err.append(..) auch System.err.println nehmen? Dann macht er wenigstens noch einen Zeilenumsprung und das Resultat ist sonst das selbe^^
Wenn es dir nur um den Zeilenumbruch geht:

Code: Alles auswählen

System.err.append("Test\n");
erzeugt einen Zeilenumbruch nach der Ausgabe von "Test". Übrigens wird in Eclipse auch optisch zwischen System.out und System.err unterschieden - und für weitere Unterschiede siehe diesen Link (zweiter Treffer bei google, gibt sicher noch bessere).
Dann noch ne Frage bzgl. Methodenlänge:
In der letzten Übung stand etwas von 5-10 Zeilen Code pro Methode; für diese Übung hab' ich was von 15 Zeilen Maximum gehört.. Zählen da die durch Formatierung entstandenen "}"-Zeilen mit? Oder nur die, wo wirklich was gemacht wird? Zudem ergibt sich jetzt die Situation, dass meine playGame() aufgrund von ein paar ifs ca. 20 Zeilen hat, ist das okay? Ist ja auch ne ziemlich wichtige Methode und die vorgefertigte toString hat ja auch mehr =)
In der letzten HÜ war das Maximum 15 Zeilen (5-10 war nur eine Richtlinie). Diesmal ist die Beschränkung nicht Teil der Bewertung (aber es ist immer angenehm, eher kurze Methoden zu lesen).

Re: Hausübung 9

Verfasst: 20. Jan 2008 12:50
von ChRiZz88
Alles klar, danke^^ Hm, ist bei nextMoveWins() egal, wann er sagt, dass man gewinnen kann? Quasi Fall a) als Hinweis vor des Gegners Zug ("Pass auf, sonst gewinnt der andere") oder als Hinweis vor dem eigenen Zug ("dein letzter Stein gab dir die Möglichkeit, jetzt das Spiel zu beenden")? Ist nur ne Frage von der Reihenfolge in playGame(), deshalb wohl nicht zwingend relevant für Punkte, aber die Aufgabestellung präferiert eher den zweiten Weg, wobei ich den spieltechnisch noch schlechter finde als den ersten^^

Re: Hausübung 9

Verfasst: 20. Jan 2008 17:09
von marek
Also ich habe es auf die von Dir zweitgenannte Weise implementiert. Mal ganz davon abgesehen, ob es logisch sinnvoll ist oder nicht, in meinem Falle musste ich zunächst die Spielreihenfolge invertieren, was einen gekonnten Eindruck macht, eher als wenn man die Methoden einfach nur zufällig ineinanderschachtelt. Dadurch kann ich mir hoffentlich ein Paar Punkte sichern;) Aber wie gesagt, Lösung ist offen, dafür sollte man schon zeigen, dass man bewusst mit seinem eigenen Code umgeht.

Re: Hausübung 9

Verfasst: 20. Jan 2008 17:28
von s!mon
Ich habe die Methode zwar implementiert, aber nirgends benutzt, weil ich den Hinweis sinnlos finde, weil er das Spiel kaputt macht. Kann man das auch so lassen (habe den Aufruf in playGame(), aber auskommentiert und einen Kommentar davor geschrieben, dass es aus den genannten Gründen nicht benutzt wird).

Re: Hausübung 9

Verfasst: 20. Jan 2008 18:05
von ChRiZz88
Mach ihn doch rein, wenn dus abgibst und raus, wenn dus spielen willst^^ Find ihn auch sinnlos, aber wenns die Aufgabe so will...

Re: Hausübung 9

Verfasst: 20. Jan 2008 22:42
von mcdikki
Wozu?

Es steht nirgends in der Aufgabe das diese Methode angewendet werden muss?

Sie ist public, dass heißt für mich dass zb. mal für die einrichtung eines AI -Computergegeners da ist oder ähnliches.
Wenn wir sie aufrufen sollen würde es schon in der Aufgabenstellung stehen.

lg mcdikki

Re: Hausübung 9

Verfasst: 20. Jan 2008 23:08
von marek
Naja, mann soll schon zeigen, dass die Methode auch funktioniert :wink:

Re: Hausübung 9

Verfasst: 21. Jan 2008 00:58
von mcdikki
dafür gibt es doch JUnit TestCases ;-)

Aber man sollte es natürlich für sich selbst zeigen.