# Kartenspiel: MauMau



## H2SO4 (21. Jan 2005)

Hat vielleicht einer von euch schonmal ein Kartenspiel programmiert und hat somit ein paar Tipps zum Handling mit den Karten?

Wie verwalte ich die im Programm am besten? Es sollen am Ende ein ganz normales Blatt dabei herauskommen (32 Karten).


----------



## amlug (21. Jan 2005)

Nimm doch einen Vector zum verwalten der Karten.


----------



## H2SO4 (21. Jan 2005)

Habe ich auch schon dran gedacht, auch schon an Arrays und HashMaps.

Gibt es auch eine Möglichkeit zu einem Wert mehrere Einzelwerte zuspeichern?

Z.B.: HashMap map = new HashMap();
         map,put("Karte1","7");

Nur eben mehr als ein Wert, vielleicht so etwas:

(Karte1, 7, Karo, func_2Ziehen);


Gibt es sowas?


----------



## Beni (21. Jan 2005)

Mach doch eine Klasse "Karte", dann hast du keine Probleme mit "wohin gehört jetzt dieser String schonwieder"...


----------



## H2SO4 (21. Jan 2005)

```
public Kartenstapel()
{   
        karten.addElement(new Karte("Karo","Karo 7",7));
        karten.addElement(new Karte("Karo","Karo 8",8));
        karten.addElement(new Karte("Karo","Karo 9",9));
        karten.addElement(new Karte("Karo","Karo 10",10));
        karten.addElement(new Karte("Karo","Karo Bube",20));
        karten.addElement(new Karte("Karo","Karo Dame",10));
        karten.addElement(new Karte("Karo","Karo König",10));
        karten.addElement(new Karte("Karo","Karo Ass",11));
        karten.addElement(new Karte("Herz","Herz 7",7));
        karten.addElement(new Karte("Herz","Herz 8",8));
        karten.addElement(new Karte("Herz","Herz 9",9));
        karten.addElement(new Karte("Herz","Herz 10",10));
        karten.addElement(new Karte("Herz","Herz Bube",20));
        karten.addElement(new Karte("Herz","Herz Dame",10));
        karten.addElement(new Karte("Herz","Herz König",10));
        karten.addElement(new Karte("Herz","Herz Ass",11));
        karten.addElement(new Karte("Pik","Pik 7",7));
        karten.addElement(new Karte("Pik","Pik 8",8));
        karten.addElement(new Karte("Pik","Pik 9",9));
        karten.addElement(new Karte("Pik","Pik 10",10));
        karten.addElement(new Karte("Pik","Pik Bube",20));
        karten.addElement(new Karte("Pik","Pik Dame",10));
        karten.addElement(new Karte("Pik","Pik König",10));
        karten.addElement(new Karte("Pik","Pik Ass",11));
        karten.addElement(new Karte("Kreuz","Kreuz 7",7));
        karten.addElement(new Karte("Kreuz","Kreuz 8",8));
        karten.addElement(new Karte("Kreuz","Kreuz 9",9));
        karten.addElement(new Karte("Kreuz","Kreuz 10",10));
        karten.addElement(new Karte("Kreuz","Kreuz Bube",20));
        karten.addElement(new Karte("Kreuz","Kreuz Dame",10));
        karten.addElement(new Karte("Kreuz","Kreuz König",10));
        karten.addElement(new Karte("Kreuz","Kreuz Ass",11));
}
```

Jetzt gibt es aber schon wieder ein Problem:

wenn ich nun mit karten.get(0) mir das Objekt zurückgeben lasse und eine Methode dieses Objektes aufrufen will, dann geht das nicht (cannot resolve symbol)

Woran liegt das?


----------



## L-ectron-X (21. Jan 2005)

Entweder Du bastelst mit Generics (Java 1.5) einen Vector vom Typ Karte, dann kannst Du mit get() gleich ein Objekt om Typ Karte zurückgeben. Oder Du musst auf Karte casten, Weil ein "normaler" Vector mit get() nur Objekte zurückgibt.
Java 1.5:

```
Vector<Karte> Karten = new Vector<Karte>();
```


----------



## H2SO4 (21. Jan 2005)

Ich habe im Forum nur zwei Beiträge zum thema casten gefunden, meinen und in dem anderen steht das selbe wie hier. 

Was ist das also genau und wie funktioniert es?


----------



## L-ectron-X (21. Jan 2005)

```
Karte eineKarte = (Karte)Karten.get(i);
```
Diese Codezeile holt ein Objekt aus dem Vector und castet es in ein Objekt vom Typ Karte.


----------



## Gast (29. Jan 2005)

@H2SO4
hi
kannst du mir mal den quelltext von deinem spiel schicken? wuerde mir naemlich gerne ein paar anregungen zur verwirklichung eines kartenspiels holen...
thx


----------

