Hausübung 9

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Hausübung 9

Beitrag von Krümelmonster » 18. Jan 2008 00:16

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
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

evel
Erstie
Erstie
Beiträge: 19
Registriert: 16. Nov 2007 11:08

Re: Hausübung 9

Beitrag von evel » 19. Jan 2008 19:21

was macht denn dieses this (7,6) im parameterlosen konstruktor?

MarkusS
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 14. Nov 2007 15:13
Kontaktdaten:

Re: Hausübung 9

Beitrag von MarkusS » 19. Jan 2008 19:34

es ruft den Konstruktur ConnectFour(int width, int height) auf

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

Re: Hausübung 9

Beitrag von guido » 20. Jan 2008 09:13

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

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Hausübung 9

Beitrag von ChRiZz88 » 20. Jan 2008 10:33

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 =)

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Re: Hausübung 9

Beitrag von Wambolo » 20. Jan 2008 11:54

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.
Interpreter/Parser reported on Nov 12, 2008 8:30:04 PM:
Number too big (102 > 42).

Benutzeravatar
mantra
Computerversteher
Computerversteher
Beiträge: 385
Registriert: 23. Okt 2005 23:56
Wohnort: Wiesbaden

Re: Hausübung 9

Beitrag von mantra » 20. Jan 2008 11:56

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).

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Hausübung 9

Beitrag von ChRiZz88 » 20. Jan 2008 12:50

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^^

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Hausübung 9

Beitrag von marek » 20. Jan 2008 17:09

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.

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Hausübung 9

Beitrag von s!mon » 20. Jan 2008 17:28

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).

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: Hausübung 9

Beitrag von ChRiZz88 » 20. Jan 2008 18:05

Mach ihn doch rein, wenn dus abgibst und raus, wenn dus spielen willst^^ Find ihn auch sinnlos, aber wenns die Aufgabe so will...

mcdikki
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 22. Okt 2007 17:16
Wohnort: Frankfurt

Re: Hausübung 9

Beitrag von mcdikki » 20. Jan 2008 22:42

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

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Hausübung 9

Beitrag von marek » 20. Jan 2008 23:08

Naja, mann soll schon zeigen, dass die Methode auch funktioniert :wink:

mcdikki
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 22. Okt 2007 17:16
Wohnort: Frankfurt

Re: Hausübung 9

Beitrag von mcdikki » 21. Jan 2008 00:58

dafür gibt es doch JUnit TestCases ;-)

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

Antworten

Zurück zu „Archiv“