Autor Thema: Kartenspiel-Aufbau  (Gelesen 227 mal)

Reggie

  • Jr. Mitglied
  • **
  • Beiträge: 56
  • Karma: 1
    • Profil anzeigen
Kartenspiel-Aufbau
« am: 01. März 2017, 16:05:04 »
Hi Leute,
ich versuche mir gerade Java beizubringen und möchte mit einem Kartenspiel beginnen. Dazu habe ich mir zum Aufbau ein paar Gedanken gemacht und würde gerne wissen, ob ich damit grundsätzlich richtig liege, denn ich komme aus der Ecke des "prozeduales Programmieren" und mir ist das "objektorientierte Programmieren" noch nicht so ganz verständlich.

here we go:

Ich kann die Spielkarten sehr gut in 3 Kategorien einteile, die alle etwas völlig unterschiedliches machen und darstellen (Personenkarten, Aktionskarten, Sonderkarten).
Also dachte ich mir, dass ich eine Mutterklasse Karte erstelle (abstract?) und jede der Kartenkategorien wird eine eigene Unter-Klasse. Der Grund dafür ist, weil ich die Orte, an denen sich die Karten im Spielverlauf nur befinden können (Ziehstapel, Ablagestapel, HandSpieler[n], AuslagejeweiligerSpieler[n]) als Arraylist des Typs Karte verwalte. Karten-Objekte erstelle ich ja keine, aber alle gehören (erben) ja zum Typ Karte.

Ist das zu kompliziert gedacht? ich könnte natürlich auch nur 1 Klasse Karte haben, und die Kategorie ist einfach ein Attribut der Klasse Karte.

Bin offen für Vorschläge, Erklärungen, Tipps und hoffe ich verstehe es.

TheFail

  • Held Mitglied
  • *****
  • Beiträge: 859
  • Karma: 69
  • Kann alles, macht alles, weiß alles ;)
    • Profil anzeigen
Re: Kartenspiel-Aufbau
« Antwort #1 am: 02. März 2017, 10:00:03 »
Hi Reggie,

Ohne genauer zu wissen was dein Spiel können soll, kann man auch nur schwer konkrete Aussagen machen.
Aber ja, es hört sich sinnvoll an was du sagst. Ob die Basisklasse aller Karten jetzt abstrakt sein soll oder nur ein Interface, hängt in erster Linie davon ab, ob es Methoden oder Abläufe gibt die wirklich jede Karte besitzen soll. Wahrscheinlich ist das eher nicht der Fall und somit würde ein Interface vollkommen ausreichen. Die andere Frage ist natürlich, ob sich die Kartentypen von ihrer Verwendung/Funktion überhaupt unterscheiden und es somit eigentlich keinen guten Grund mehr gibt, separate Klassesn zu machen. Das musst du wissen - ich kenn dein Spiel nicht :)

Die Stapel könnteste teilweise statt ArrayList evtl auch Stack (falls meistens eh nur um die oberste Karte geht) oder LinkedList (falls du häufig Karten aus der Mitte des Stapels nimmst) verwenden. Ist nur als Denkanregung gedacht - man muss nicht jedesmal ArrayList nehmen. Je nach usecase gibts vielleicht auch noch andere Klassen, die besser geeignet sind.

Lg Fail

Schon meinen Notifier gesehen?