cupnb / KeineSchafkopfapp

Der verzweifelte Versuch. Wenigesten in der command line oder so... Bitte :(
2 stars 0 forks source link

Hilfe? #2

Open nichtderlehrer opened 7 years ago

nichtderlehrer commented 7 years ago

Ich stolpere von Zeit zu Zeit über dieses Projekt, das ich für ambitioniert, aber nicht unrealistisch halte. In der Beschreibung sehe ich, dass die Anforderungen mittlerweile (zumindest vorerst) auf die Kommandozeile beschränkt wurden - eine gute Idee, wie ich finde.

Ich denke, ich könnte Ihnen bei der Umsetzung mit Rat (weniger Tat) zur Seite stehen, sofern Sie das möchten. Hätten Sie daran Interesse?

cupnb commented 7 years ago

Hallo erst einmal. Wir haben schon mitbekommen, dass sie unserem Projekt Aufmerksamkeit schenken. Wir würden uns freuen, wenn sie uns ein wenig beraten :) Wir sind momentan daran die "Logik" zu debuggen damit überhaupt erst mal was läuft. Wir hatten heute ein Treffen welches viele Fehler hervorbrachte, diese versuchen wir jetzt bis nächste Woche zu fixen. (wir treffen uns jeden Montag um 16.15 bis 17.45) Unser Problem ist momentan das Nichtvorhandensein von Zeit (12. Klasse halt ^^) und Erfahrung. Wie gesagt, wir freuen uns über jede Hilfe ihrerseits.

Und rein aus Interesse: Wie sind sie auf unser Projekt gestoßen? Vielleicht möchten sie ein wenig mehr über dieses erfahren. Wir fragen uns das schon seitdem sie uns das erste Mal folgten ^^

nichtderlehrer commented 7 years ago

Dann würde ich vorschlagen, auf das Siezen zu verzichten und per du zu kommunizieren, um die Sache etwas zu vereinfachen.

Wie bereits erwähnt, halte ich es für sehr vorteilhaft, sich (zunächst) auf das allernötigste zu beschränken. Ich würde allerdings noch weiter gehen, und zunächst mal eine stark vereinfachte Version implementieren, die nicht bereits Rufspiel, Solo, Wenz und Ramsch kann, sondern nur eine einzige Variante anbietet. Mein Vorschlag wäre, sich fürs Erste auf ein Herzsolo zu beschränken (denn beim Rufspiel ist die Aufteilung in zwei Mannschaften etwas komplexer, beim Ramsch ebenfalls). Dadurch spart man sich erst einmal die recht komplexe Logik, bei mehreren angekündigten Spielen das stärkste auszuwählen. Der erste Spieler, der ein Spiel ankündigt, darf spielen. Falls keiner Spielt, wird einfach das nächste Spiel gegeben.

Außerdem fällt stark auf, dass eure Klasse Game sehr viele members, d.h. sehr viel Zustand - teils stark redundant - enthält, was die Sache stark verkompliziert. Beispiele:

Darüberhinaus solltet ihr versuchen, in eurem Programm für gleiche Dinge stets die gleiche Repräsentation zu verwenden. Ich sehe beispielsweise eine callingColor, die jedoch keine CardColor, sondern ein int ist - das fällt euch früher oder später auf die Füße.

Zu guter Letzt: Warum macht ihr euch das Leben mit Deck.initialize so kompliziert? Anstatt deck.initialize(dump) aufzurufen, könntet ihr doch viel einfacher einfach deck = new Deck() schreiben. (Ich sehe ein, dass man eventuell einen "menschlichen" Mischalgorithmus implementieren will, aber ihr seid - denke ich - deutlich besser beraten, euch hier nicht unnötig Komplexität aufzuladen.)

cupnb commented 7 years ago

Ersteinmal danke fuer die vielen Anmerkungen, wir werden Das demnaechst besprechen. Ich habe das Meiste verstanden, allerdings habe ich die Logik nicht wirklich geschrieben und werde mich da wohl noch einarbeiten muessen ^^ Wir melden uns dann bei dir wenn es weitergeht.

LukasDrse commented 6 years ago

Nur eine kurze Anmerkung zum Mischalgorithmus: uns wurde von unserem Lehrer vorgegeben, die Mischmethode so menschlich wie möglich zu machen, obwohl wir gemeint hatten, dass es auch leichter geht. ^^

nichtderlehrer commented 6 years ago

Nur eine Idee: Habt Ihr schon einmal überlegt, Euch einem bereits existierenden Open-Source-Projekt anzuschleßen? Ich weiß, dass es erst einmal nicht so attraktiv klingt wie ein eigenes Projekt, aber man könnte dabei vermutlich zum einen lernen, wie andere - möglicherweise erfolgreich implementierte - Lösungen zustandekommen und müsste sich nicht mit all den Grundlagen herumschlagen, die sehr zeitintensiv sind, aber keine (oder kaum) Früchte tragen.