verkette Liste (STL) an Funktion übergeben



  • Hi @all

    Ich bin C++ Neuling und wollte zum Beweis meines (halb)Wissens ein einfaches Kartenspiel schreiben.

    Ich habe die Klasse CKarte und davon 32 Stück im:
    pKartendeck = new CKarte[32];

    Soweit so gut, alle Karten sind initialisiert.

    Nun soll ja jeder Spieler ein paar Karten kriegen. Hierfür wollte ich eine verkette Liste der STL nutzen.

    Meine Frage: Wie übergebe ich die Liste ( list <CKarte*> lSpieler01;)
    an eine Funktion die die Karten in die Liste einfügt? (zB Mischen....)

    (Prototyp) Mischen(?????? lSpieler01); ????

    Macht das überhaupt Sinn?

    mfg Hansi



  • Am besten als Referenz (übrigens dürfte eine Spielkarte klein genug sein, um sie nicht auf dem Heap anlegen zu müssen, also erspar dir das Hantieren mit Zeigern, soweit es geht).



  • Hi,
    ganz einfach:

    void mischen(list<CKarte>& karten)
    {
     // http://www.cppreference.com/cppalgorithm/index.html
    }
    //...
    
    list<CKarte> karten(32);
    // karten füllen -> http://www.cppreference.com/cpplist/index.html
    
    //karten mischen
    mischen(karten);
    

    Aber ich würde dir doch eher raten ein std::vectordafür zu nehmen und vllt eine Klasse "Kartendeck" zu schreiben die eine list von CKarten enthält und zudem Elementfunktion wie nextCard(), mix() etc. bereitstellt ...



  • oh mann wahnsinn wie schnell ihr seid 😉 Dickes dickes Lob

    ERST DENKEN, DANN POSTEN.....

    Mir ist diese Frage jetzt schon wieder sowas von peinlich 😞

    (Ich hatte nur einen Denkfehler im Funktionskopf)

    btw denke ich dass eine Klasse Spieler mehr Sinn machen würde...


Anmelden zum Antworten