OOP

lulas[]args

Mitglied
Hallo!

Ich habe mein erstes eigenes Java Projekt gerade beendet und es läuft alles, aber bei der erstellung der Dokumentation besonders beim Klassendiagramm frage ich mich jetzt ob ich die Aufteilung im Sinne von OOP intelligent und richtig gemacht habe.

Der Punkt über den ich am meisten grübbel ist meine Klasse Spieler. Da mein spielfeld aus einer switch schleife die einfach nur die positionen des Spielers überprüft und keiner Spielfigur bisher besteht, da jeder spieler ohnehin nur eine Figur besitzt (daher habe ich einfach spieler und spielfigur abstakt gleichgesetzt).

Wäre es besser jetzt die variable Position trotzdem als dann Position der Figur auszugliedern oder beim Spielfeld einfach nur die Schleife die geprüft wird auszugliedern?

Ich hatte als Beispiel ein MenschÄrgerDichNicht Spiel zur Vorlage, jedoch gibt es da ja je Spieler 4 Figuren und das Spielfeld ist ein Array um auch tatsächlich die Positionen abzuspeichern und die Schmeis-Funtkion damit auszufüheren.

Wäre auch sehr dankbar über einen Rat, wie man allgemein vllt auch schon im vorherein an diese Sache ran geht. So viel ausgliedern wie nötig und logisch oder so viel wie möglich.

Jetzt wären es ja einfach noch paar getter/setter Aufrufe mehr statt der einfachen direkten in der Klasse Spieler.

Danke!!!
 

HimBromBeere

Top Contributor
Ich schlage mal vor, du schickst uns mal, was du bisher hast, da deine Ausfürhungen doch schon sehr verwirrend sind.
Der Punkt über den ich am meisten grübbel ist meine Klasse Spieler. Da mein spielfeld aus einer switch schleife die einfach nur die positionen des Spielers überprüft
Wenn du 16Spieler auf deinem Feld hast, solltest du für jeden dieser Spieler eine Instanz auf dein Spielfeld setzen (z.B. ein Array mit 16 Einträgen). Dann kannst du auf deinem Spielfeld in der switch die Position eines jeden Spielers über spieler.getPos() abfragen.
und keiner Spielfigur bisher besteht, da jeder spieler ohnehin nur eine Figur besitzt.
Das kapier ich gar nicht mehr... ein Spielfeld, was keine Spielfiguren hat? Sollte bei Mensch-Ärger-dich-Nicht nicht ein Spieler vier Figuren besitzen, oder war das nur ein Beispiel? Nichtdestotrotz meinst du mit
(daher habe ich einfach spieler und spielfigur abstakt gleichgesetzt).
bestimmt eher deine vier Spieler haben je eine statische Variable Figur, nicht abstrakt. Wenn das stimmt, müsstest du aber vier Klassen von Spielern haben, was ziemlicher Quatsch wäre...
 

diggaa1984

Top Contributor
Ich geb meinem Vorredner mal recht, das klingt alles ein wenig verwirrend, da die Strukturen nur schwammig umschrieben sind.

Ich verstehe dich so: Du hast eine Klasse die sich um den Spielablauf kümmert (mit dieser switch-Anweisung). Darin bearbeitest du die Positionen der Spieler etc. Da ein Spieler bisher bei dir nur ne Figur darstellt und alles anderer ausserhalb des Spielers berechnet und abgelegt wird hast du den Spieler als Klasse quasi nicht geschrieben und wie üblich X mal instanziiert, sondern gleich innerhalb der Spielablaufklasse realisert. Bspw statt 4 Instanzen von der Klasse Spieler, nen Array mit 4 Positionsangaben drin oder dergleichen. Das was dein Spieler ausmacht wäre lediglich die Figur, die Position wolltest du generell nicht in der Spielerklasse ablegen!?
 

lulas[]args

Mitglied
Tschuldigung!

Ich versuche es noch mal ausführlich:autsch:

Also ich habe die Klasse Spiel, Spieler, Wuerfel, Mensch, PC und Wuerfel.

In der Klasse Spiel ist die main. Dort wird der Spielablauf durchgeführt also in einer schleife die Bewegung über das Feld.

Mensch und PC sind Kindklassen von spieler und dienen eig nur dazu keine Spieleingaben zu verlangen wenn ein Pc - Spieler erzeugt ist.

In der Klasse Spieler ( eigentliches Herzstück ) befinden sich eig alle Variablen des Spiels.

Jeder Spieler hat seine Position, die mit dem Würfel ermittelt wird und besitzt eine Schleife (Abstaktes Spielfeld) die prüft ob sich ein Spieler auf einem bestimmten Feld befindet.

Ich speicher das ganze eben nicht wie in meiner MenschÄrger dich Vorlage in einem Array sondern setze nur die Position in der main und prüfe dann in der Klasse Spieler ob er auf einem aktionsfeld steht. Seine aktuelle Position gebe ich dann mit ner for in der main wieder auf die konsole aus.

Jeder Spieler soll nur eine Figur haben daher habe ich sie der einfacherhalber nicht noch als Klasse formuliert sondern, setzte Spieler und Figur quasi gleich und ziehe gewissermaßen mit dem namen des Spielers über mein Spielfeld.

Spieler == Figur
Spielfeld ist nur eine swicth, die die Position prüft und ne for die das ganze mit ----name--- ausgibt

Macht es jetzt Sinn eine tatsächliche Figur Klasse und Spielfeldklasse zu erzeugen?

Weil wenn ich nur eine Figur habe kann ich sie doch gleich setzen dem Spieler und das Spielfeld hätte ja nicht mal ne richtige Methode sondern nur die Schleife die jetzt im Spieler die Position prüft.

Wie ist dass im Sinne der OOP?

Danke!!!
 

Neue Themen


Oben