kartenspiel abbilden



  • Hallo

    ich muss ein programm entwerfen, das die Wahrscheinlichkeiten während eines Kartenspiels errechnet und diese dann auch noch durch nachspielen bestätigt. Dazu muss ich erstmal ein Kartenspiel "zur Verfügung" haben und daran scheitert es im Moment. Der Grundgedanke ist folgender: Ein Spielkarte wird durch zwei Informationen eindeutig. Der Farbe und deren Wert. Normalerweise (in VBasic ;)) würde ich ein String Array mit 52 Strings bauen, in dem jeder String zwei Informationen erhält. Diese würden dann im Laufe des Spiel in mehrere (Spieleranzahl) Arrays übertragen werden und die in der Hand haltenden Karten darstellen. Da ich das Ganze auch noch durch "ausspielen" bekräftigen soll, stellt sich die Frage nach dem Aufwand. Und hier hege ich den Verdacht, dass mein Ansatz ineffizient ist. Hat jemand einen effizienten Ansatz im Kopf und kann mir seine Gedankengänge offenlegen?

    herzlichen Dank
    David Nawrot



  • Ich würde folgendes machen: Du baust erstmal einen struct für die karten
    struct Karte
    {
    unsigned char Zahl;
    unsigned char Farbe;
    };
    dann würd ich einen Vector nehmen, in den ich alle Karten die es gibt einfüge. Das ist sozuagen der Stapel. Dann würd ich eine Mischen-Funktion schreiben. Dadurch wird der Stapel gemischt. Dann würde ich für jeden Spieler eine Klasse anlegen, die einen Vector als private besitzt, wo die Handkarten gespeichert sind, sowie eine Funktion um Karten hinzuzufügen, evtl. noch entfernen (kommt auf das Spiel an) und natürlich eine funktion, um einen Spielzug durchzuführen. Darin muss festgelegt sein, welche Karte ausgespielt werden soll, diese Karte wird aus den Handkarten entfernt und auf einen Vector für gelegte Karten gepackt (evtl. auch eine Doppelt verkettete Liste). Jedes Spielerobjekt kann auf den gelegte Karten Vector eine Karte oben drauf legen, und ihn komplett lesen. Vom Stapel vektor kann jeder spieler nur die oberste Karte nehmen, sich das ganze jedoch nicht angucken. Dann kannst du beliebig viele Spieler deklariren und mischt zuerst, dann teilst du aus und rufst nacheinander deren Spielfunktion auf, bis das Spiel zu ende ist. Ich würd dir Maumau empfehlen das ist relativ simpel


Anmelden zum Antworten