Seite 1 von 1

Letzte Frage

Verfasst: 25. Jun 2012 16:43
von Johnny
mein Projekt ist soweit, abgabebereit, nur dass es noch ein sehr komisches Problem nachweist: Wenn 2 menschliche Spieler gegeneinander spielen geht es problemlos, wenn aber ein menschlicher Spieler gegen ein CPU-gesteuerter Spieler eintritt, bekomme ich ziemlich sporadisch indexOutOfBounds Fehlermeldungen von Methoden der Kartenhand-Klasse. Hat noch jemand so was getroffen? Was für Lösungen gibt es? Und, falls ich das nicht lösen kann, inwiefern wird die Punktegabe dadurch beeinflusst?

Re: Letzte Frage

Verfasst: 25. Jun 2012 17:52
von Owyn
Eine IndexOutOfBounds-Exception tritt dann auf, wenn Sie auf ein Array- oder Listen-Element zugreifen wollen, dass es nicht gibt. Woran das liegt, müssen Sie selbst rausfinden.

In der Meldung wird Ihnen nicht nur die Zeilennummer genannt (die Sie in den BlueJ-Einstellungen einblenden lassen können), sondern auch, welcher Wert zum Fehler geführt hat.

Gruß,
Christian Heinig

Re: Letzte Frage

Verfasst: 25. Jun 2012 17:56
von Johnny
Solche Fehler sind auch früher erschienen, und wenn ich versuchte die zu korrigieren, griff die Benutzeroberfläche nicht mehr auf die Karten, auf denen ich zugreifen wollte(Es handelt sich nämlich um die ablegen-Methode). Ich will die Funktion behalten, aber bei einer Änderung der Stelle sowie ich bisher gemacht habe, würde ich die Funktionalität verlieren. Tja, so gehts.

Re: Letzte Frage

Verfasst: 25. Jun 2012 19:29
von snoo
Hatte den selben Fehler. Du weißt genau wann der Fehler auftritt und kennst die Stelle im Code die den Fehler verursacht. Mehr brauchst du nicht, um das Problem zu lösen.

Bitte nicht persönlich nehmen, aber...
Ich finde es übrigens wettbewerbsverzerrend wenn du dir so Vieles vorkauen lässt, immerhin handelt es sich um eine Prüfungsleistung. Wegen Leuten wie dir wird man irgendwann noch das Forum während eines Projektes sperren müssten (es kamen immerhin auch einige interessante Beiträge zum Projekt). Angefangen mit der Dreistigkeit Codes öffentlich zu posten oder per PN um die halbe Welt zu schicken bis hin zur Tatsache, dass du scheinbar nicht verstehen willst, dass die selbstständige Lösung eines (Programmier-)Problems Kern eines solchen Projektes ist.
Die 20 zu erreichenden Punkte sind keine Aufwandsentschädigung für die Zeit die du investiert hast, sondern eine Bewertung. Wenn du Dinge nicht gelöst bekommst, dann ist es halt leider so und du musst mit weniger Punkten leben.

Re: Letzte Frage

Verfasst: 25. Jun 2012 21:27
von lilly11
hab da auch noch ne frage :twisted: :

mein Programm ist ausführbar, es werden auch karten abgelegt, ABER wenn ich jetzt eine Sonderkarte ablege stürzt mein Programm ab und ist nur noch durch den debugger zu schließen. Mich würd jetzt interessieren wo es wahrscheinlicher ist, das es daran liegt: an meiner Methode kompatibel oder doch eher der zug(). Muss gestehen, da ich das noch nicht ausführlich überprüft habe. Bisher dachte ich das es die Methode zug ist, aber seit ich gesehen habe, das ich Karten ablegen kann, und diese nach fast endloser Fehler suche nun auch endlich auf dem Stapel auftauchen denke ich das es eigentlich nur noch an kompatibel liegen kann... Hmm liege ich damit denn richtig oder bin ich auf'm falschen Dampfer.

Re: Letzte Frage

Verfasst: 25. Jun 2012 23:40
von henry
snoo hat geschrieben:Ich finde es übrigens wettbewerbsverzerrend wenn du dir so Vieles vorkauen lässt, immerhin handelt es sich um eine Prüfungsleistung. Wegen Leuten wie dir wird man irgendwann noch das Forum während eines Projektes sperren müssten (es kamen immerhin auch einige interessante Beiträge zum Projekt). Angefangen mit der Dreistigkeit Codes öffentlich zu posten oder per PN um die halbe Welt zu schicken bis hin zur Tatsache, dass du scheinbar nicht verstehen willst, dass die selbstständige Lösung eines (Programmier-)Problems Kern eines solchen Projektes ist.
Die 20 zu erreichenden Punkte sind keine Aufwandsentschädigung für die Zeit die du investiert hast, sondern eine Bewertung. Wenn du Dinge nicht gelöst bekommst, dann ist es halt leider so und du musst mit weniger Punkten leben.
Ich glaube, du solltest das ganze nicht so eng sehen. Das Ziel von AI2 ist keine Bewertung, sondern, dass man etwas lernt. Die wenigsten werden sich einfach durch das Projekt durchkauen und ohne fremde Hilfen und Einflüsse das Ganze auf die Beine stellen. Es ist vollkommen ok und richtig sich bei Problemen an den Projektpartner, Freunde, Bekannte oder eine (irgendeine) Plattform im Internet zu wenden, um nach Rat zu fragen. Den eigenen Code in der Weltgeschichte (vor allem an andere Projektteilnehmer) herunzuschicken ist problematisch, aber solange man nur danach fragt, wo denn da der Fehler liegt (die Aufgabe also schon bearbeitet hat und eben nicht weiter kommt, mit den eigenen Problemen) und nicht verlangt "mach mal!", ist das alles im Rahmen. Aus Fehlern lernt man - und das besonders gut.
Sollte es wirklich vorkommen, dass sich Personen ihre Leistung durch Gutmütigkeit von anderen erschlichen haben, wird sich das in der Klausur rächen, da kannst du dir sicher sein.

Re: Letzte Frage

Verfasst: 26. Jun 2012 01:00
von Owyn
lilly11 hat geschrieben:hab da auch noch ne frage :twisted: :
Wenn das Programm "abstürzt", liegt es vermutlich an einer Endlosschleife - also mal genau die Schleifenbedingungen prüfen. Und wenn die richtig zu sein scheinen, auch die Methoden, deren Ergebnisse ggf. in diesen Bedingungen genutzt werden.

Gruß,
Christian Heinig

Re: Letzte Frage

Verfasst: 26. Jun 2012 01:11
von Owyn
Natürlich ist es das Ziel von AI1 und AI2, dass man etwas lernt.

Das tut man aber durch aktives Programmieren und ausprobieren unter Zuhilfenahme von Skript, Literatur etc. - auch die Poolraumbetreuung ist eine gute Hilfe!
Durch Lesen von Musterlösungen und Fragen auf den letzten Drücker lernt man eher wenig.

Und: ich gebe snoo in allen Punkten Recht. Beim Programmierprojekt geht es eben nicht mehr nur ums Lernen, sondern auch darum, zu zeigen, dass man das theoretisch bisher Gelernte anwenden kann. Und dafür gibt es auch eine entsprechende Bewertung.

Bei Fragen an andere sollte man übrigens vorsichtig sein, was man fragt und wie man mit den Antworten verfährt: Der Absatz zu Plagiarismus in der Aufgabenstellung wird an der Uni ernst genommen.
Es gab in den letzten Semestern einige, die davon ein Lied singen können.

Und auch Henry hat Recht: Auch mit vielen Punkten im Programmierprojekt ist es ziemlich unwahrscheinlich, die Klausur zu bestehen, wenn man nicht selbst programmieren kann. Auch das ist ein Erfahrungswert aus den letzten Semestern...

Gruß,
Christian Heinig

Re: Letzte Frage

Verfasst: 26. Jun 2012 16:33
von Johnny
Eigentlich kommt jetzt meine letzte Frage: Während des Spiels, nachdem ein paar Karten abgelegt wurden, kommt es vor, dass mein Programm nur die Wertkompatibilität noch erkennt, und nicht die Farbenkompatibilität. Beide werden am Anfang der Ausführung erkannt, aber nur eine nach einer Weile. Ich verstehe es nicht, weiß irgendjemand was los damit ist?

Re: Letzte Frage

Verfasst: 28. Jun 2012 15:59
von snejjj
dann hast du wohl irgendwo mist programmiert.
eigentlich sollten die Methoden, die die kompatibilität prüfen, ja unabhängig von der Zugzahl funktionieren ;-)

Re: Letzte Frage

Verfasst: 28. Jun 2012 22:54
von wambo
das einzige was unterschiedlich sein kann, sind ja die zu vergleichenden karten, und ob der stapel aktiv ist...