Kleines Rpg



  • Hallo, ich bin neu hier und würde gerne wissen, was ich nun falsch mache.
    Ich versuche seit einigen Minuten ein kleines Rpg zu programmieren.
    Also eigentlich nur einen Kampf.
    Wenn ich zum Beispiel eine bestimmte Attacke auswähle soll sie die vorgegebene Anzahl von Lebenspunkten abziehen, aber ich komme nicht weiter.
    Hätte jemand ein paar Verbesserungen?(Ist nicht ganz fertig)

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    int leben=50;
    int gegner=50;
    int kralle=5;
    int tritt=10;
    int spucke=2;
    char eingabe;
    while (0<leben || 0<gegner)
    {
    cout << " Der Gegner  hat " << gegner << " Leben" << "Du hast" << leben << "Leben" << endl;
    cout << " Wähle Attacke indem du sie eingibst " << endl;
    cout << " kralle" << endl;
    cout << " tritt" << endl;
    cout << " spucke" <<endl;
    cin >> eingabe;
    if (eingabe = kralle)
     {gegner =(gegner-kralle)}
    
    }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    


  • in der if bedingungn benutzt du den Zuweisungsooperator und nicht den Vergleichsoperator:

    Zuweisung: =
    Vergleich: ==

    Ferner dürfte im while wohl ein "&&" hin und kein "||", da du ja angreifen möchtest, wenn sowohl der gegner als auch du selbst noch lebst.
    Ferner musst du das kralle in anführungszeichen setzen.
    Also
    if(eingabe == "kralle")



  • Nur überflogen - einrücken/formatiern geht noch besser

    In dieser Zeile fehlt was:

    if (eingabe = kralle)
    

    Schau dir das mit dem if in deinen Unterlagen noch mal an.

    MfG f.-th.



  • Du lässt eine Eingabe zu, die ein Zeichen abspeichern kann char eingabe. Dann willst du (was du in dem Code jetzt zwar nicht prüfst, aber wohl vor hast) die Eingabe mit einem Integer vergleichen int kralle = 5, was zwar geht, aber unüblich ist.
    Der Rest wurde schon grob genannt.



  • #include <iostream>
    using namespace std;
    
    class Mob
    {   
    public:
        Mob () : m_leben(50)
        {
        }
    
        int bekommtSchaden(int schaden)
        {
            m_leben -= schaden;
        }
    
        int getLeben() const { return m_leben; }
        bool istTot() const { return m_leben <= 0; }
    
    private:
        int m_leben;
    };
    
    class Spieler : public Mob
    {
    };
    
    class Attacken
    {
    public:
        Attacken() : KRALLE(10), TRITT(5), SPUCKE(2)
        {}
    
        int KRALLE;
        int TRITT;
        int SPUCKE;
    };
    
    int main ()
    {
        Spieler spieler;
        Mob gegner;
        Attacken attacken;
    
        while ( 1 )
        {    
            int auswahl = 0;    
            cout << "Du wirst angegriffen! Verteidige Dich!" << endl;
            cout << "Du hast " << spieler.getLeben() << " Leben, dein Gegner hat noch " << gegner.getLeben() << endl;
            cout << "Waehle eine Attacke: " << endl;
            cout << "1.) Kralle" << endl;
            cout << "2.) Tritt" << endl;
            cout << "3.) Spucke" << endl;
            cin >> auswahl;
    
            if ( auswahl == 1 )
            {
                gegner.bekommtSchaden(attacken.KRALLE);
            }
            else if ( auswahl == 2 )
            {
                gegner.bekommtSchaden(attacken.TRITT);
            }
            else if ( auswahl == 3 )
            {
                gegner.bekommtSchaden(attacken.SPUCKE);
            }
    
            spieler.bekommtSchaden(8);
    
            if ( spieler.istTot() )
            {
                cout << "Du bist tot! Versager.." << endl;
                return 0;
            }
            if ( gegner.istTot() )
            {
                cout << "Dein Gegner ist tot! Amarr Victor!" << endl;
                return 1;
            }        
        }
    }
    

    Anschauungsbeispiel ;).
    HTH
    lg



  • Das ist doch noch zu kompliziert



  • L33TF4N schrieb:

    class Attacken
    {
    public:
        Attacken() : KRALLE(10), TRITT(5), SPUCKE(2)
        {}
       
        int KRALLE;
        int TRITT;
        int SPUCKE;
    };
    

    Warum machst du daraus kein struct? 😃



  • FreakY<3Cpp schrieb:

    L33TF4N schrieb:

    class Attacken
    {
    public:
        Attacken() : KRALLE(10), TRITT(5), SPUCKE(2)
        {}
       
        int KRALLE;
        int TRITT;
        int SPUCKE;
    };
    

    Warum machst du daraus kein struct? 😃

    Joa, hätte man machen können. Jetzt werd nicht kleinlich :P.
    lg



  • :p



  • L33TF4N schrieb:

    class Attacken
    {
    public:
        Attacken() : KRALLE(10), TRITT(5), SPUCKE(2)
        {}
        
        int KRALLE;
        int TRITT;
        int SPUCKE;
    };
    

    Warum machst du daraus keinen enum ? 🤡

    Gruß



  • Noch besser 😃 👍



  • Is gut, ich hab verstanden. Ich werd in Zukunft keine Beispiele mehr posten.



  • L33TF4N schrieb:

    Is gut, ich hab verstanden. Ich werd in Zukunft keine Beispiele mehr posten.

    Jetzt sind wir aber glücklich.
    Simon



  • L33TF4N schrieb:

    Is gut, ich hab verstanden. Ich werd in Zukunft keine Beispiele mehr posten.

    "Wir" haben dich trotzdem lieb 🤡



  • theta schrieb:

    L33TF4N schrieb:

    Is gut, ich hab verstanden. Ich werd in Zukunft keine Beispiele mehr posten.

    Jetzt sind wir aber glücklich.
    Simon

    Was soll dieses Geflame jetzt hier? Ich wollte nur helfen... sorry dass ich nicht so elitär bin wie ihr und alle Standards ausm Kopf kenne



  • Wenn du dich so defensiv gibst bzw schon fast zickig, darfst du dich auch nicht wundern.


Anmelden zum Antworten