Auf Thema antworten

Also der Stapel muss doch die Karten erstellen. Also braucht der Stapel das Wissen zu den Farben. Daher sollte der Stapel auch darauf zugreifen können.


Du kannst natürlich die Farbe als einen index für das Array speichern. Dann sollte es aber generell ein int sein und String.


Die Lösung mit den Enums würde ich Dir aber ans Herz legen. Das scheint mir hier erst einmal die beste Lösung zu sein.


Dann hättest Du zwei enums für Farbe und Wert.

Und der Stapel kann dann alle Karten anlegen mit for each schleifen also mit sowas wie:

[CODE]for(Farbe farbe: Farbe.values()) {

  for (Wert wert: Wert,values()) {

    add(new Karte(farbe, wert));

  }

}[/CODE]

Damit dieser Code so funktioniert brauchst Du aber nicht nur die Enums Farbe und Wert sondern auch noch:

- im Stapel eine Methode add(Karte), um Karten hinzufügen zu können.

- Karte benötigt einen Konstruktor, der Farbe und Wert entgegen nehmen kann.


Zu dem existierenden Code noch paar Hinweise:

- Bei der Erstellung zählst du die variable k scheinbar nicht hoch. Somit wird immer die erste Karte gesetzt.

- Ich würde beim Stapel einen Konstruktor erwarten, der Anzahl und das Karten Array von Hand setzt. Die Anzahl ergibt sich doch über Anzahl der Farben und werte und das Array muss erst einmal leer erzeugt werden...

Oder man hat einen Parameter, der die Anzahl der verwendeten Kartensets entgegen nimmt. Also wenn man z.B. mit 2 Kartenspielen gleichzeitig spielen möchte oder so ...



Oben