C++ Einkaufsliste aber wie?



  • Namenloser324 schrieb:

    wie bereits gesagt:

    void kampf(std::vector<Monster> Gegnergruppe)
    {

    //hier kannst du deine eigenen Werte benutzen und wenn Monster friend deiner //Klasse ist auch die der Monster
    }

    also ungefähr so?

    [code]
    class Ich
    {
     public:
     status werte;
    
     friend class Monster;
    
    {
    }
    void kampf(std::vector<Monster> Gegnergruppe)
    {
        // Kampvorgang
    }
    };
    

    [/code]

    [code]
    class Monster
    {
      status werte;
    };
    

    [/code]

    Ist das so richtig?
    Oder hast du gerade so ein Beispiel welches du posten könntest?

    Gruss

    Nimda4



  • Wieso muss es denn per value sein ?



  • cvcv schrieb:

    Wieso muss es denn per value sein ?

    Muss es nicht, mir ist jede möglichkeit recht so fern sie Ihren Zweck erfüllt 🙂

    Gruss

    Nimda4



  • Für mich ist einfach das Problem wie ich eine Kampffunktion machen kann, die folgende Sachen kann:

    Meine Statuswerte verwendem, die des Gegners.

    die methode roll von der kalsse dice verwenden und die ausgegebenen Werte mit den Statuswerten vergleichen.

    beispiel:

    Ausgabe: meinName, ihr dürft angreiffen.
    dice roll() WürfelWürfeln.
    wenn WürfelWürfel <=meinAngriff, dann Treffer
    sonst ausgabe Troll darf angreiffen...

    Gruss

    nimda4



  • Naja, dazu war doch der Vorschlag mit dem vektor ... ?

    ...
    
    std::vector<Monster> mobs;
    mobs.push_back(someMobInstance1); // Einfach den Vektor mit den existierenden Instanzen deiner Monster-Klasse befüllen
    mobs.push_back(someMObInstance2);
    fight(mobs); // Den befüllten Vektor an deine Kampf-Funktion übergeben
     ...
    void fight ( std::vector<Monster>& mobs ) {
         // Jetzt kannst du hier wunderbar auf die Werte der einzelnen Monster-Instanzen zugreifen und dein komisches Roll-Gedöns da machen ;)
    
    }
    


  • cvcv schrieb:

    Naja, dazu war doch der Vorschlag mit dem vektor ... ?

    ...
    
    std::vector<Monster> mobs;
    mobs.push_back(someMobInstance1); // Einfach den Vektor mit den existierenden Instanzen deiner Monster-Klasse befüllen
    mobs.push_back(someMObInstance2);
    fight(mobs); // Den befüllten Vektor an deine Kampf-Funktion übergeben
     ...
    void fight ( std::vector<Monster>& mobs ) {
         // Jetzt kannst du hier wunderbar auf die Werte der einzelnen Monster-Instanzen zugreifen und dein komisches Roll-Gedöns da machen ;)
        
    }
    

    o.O wow.

    Danke viel mals bin am rumtesten, hab nur noch 2 kleine Probleme:

    es sagt mir bei fight(mobs); "error C3861: 'fight': identifier not found."

    und was wenn ich ein Objekt einer anderen Klasse mit mehr parametern verwenden möchte? (habs ausprobiert so gehts nicht 😞 )

    Gruss

    Nimda4



  • Werd mal konkret, bitte. Wenn du die fight-funktion auch für eine andere Klasse haben willst, dann gibt ihr entweder einen 2. Parameter mit einem std::vector<AndereKlasse>& oder du überlädst die Funktion. -> Google.

    Zu Deinem Fehler : Forward-Declaration, schreib den die Funktionssignatur vor deine main() :

    void fight( std::vector<Monster>& );
    

Anmelden zum Antworten