warum hört die schleife nie auf?



  • Ich habe ja schon zwei beiträge zu schere stein papier aber trotzdem treffe ich auf fehler.(bin anfänger)habe nun mein program fertig allerdings habe ich eine while schleife gemach sodass mein spiel nach 12 runden abbricht. Aber aus irgendeinem grund geht die schleife endlos weiter wieso?

    Hier der code
    #include <iostream>
    #include <stdlib.h>

    using namespace std;

    main()
    {
    srand(time(NULL));

    int wahl_pc;
    int wahl_spieler;
    int punkte_pc, punkte_spieler;
    int runden;

    cout<<"*********** \n";
    cout<<"✂🍪*📄 * \n";
    cout<<"*********** \n\n\n";

    cout<<"bitte wähle ein der drei items \n";
    cout<<"1.nSchere\n";
    cout<<"2.Stein \n";
    cout<<"3.Papier \n";
    cout<<"hier eingeben: ";

    while(runden<12){

    cin>>wahl_spieler;

    wahl_pc=1+(rand()%(4-1));

    if(wahl_spieler==wahl_pc){
    cout<<"unetschieden \n";
    runden+1;
    }
    if(wahl_spieler==1 && wahl_pc==2){
    cout<<"computer gewinnt stein schlägt schere \n";
    punkte_pc ++;
    runden+1;
    }
    if(wahl_spieler==1 && wahl_pc==3){
    cout<<"Du gewinnst schere schlägt stein\n";
    punkte_spieler ++;
    runden+1;
    }

    if(wahl_spieler==2 && wahl_pc==1){
    cout<<"Du gewinnst Stein schlägt Schere \n";
    punkte_spieler ++;
    runden+1;
    }
    if(wahl_spieler==2 && wahl_pc==3){
    cout<<"Computer gewinnt Papier schlägt Stein \n";
    punkte_pc ++;
    runden+1;
    }

    if(wahl_spieler==3 && wahl_pc==1){
    cout<<"Computer gewinnt Schere schlägt papier \n";
    punkte_pc ++;
    runden+1;
    }
    if(wahl_spieler==3 && wahl_pc==2){
    cout<<"Du gewinnst papier schlägt stein \n";
    punkte_spieler ++;
    runden+1;

    return 1;
    }
    }

    return 0;
    }



  • Du initialisierst weder 'runden' noch weist du nirgendwo 'runden' etwas zu,



  • Bitte nutze Code-Tags, damit man die Einrückungen erhalten bleiben.
    (Code markieren und auf den C++ Button unter den 😞 :p klicken)

    Schalte die Warnungen beim Compiler auf höchste Stufe.
    Der sollte dann sowas wie "Anweisung ohne Effekt" angeben. Mehrmals

    Da sind auch noch andere Fehler drin, die eine Warnung geben.

    Beseitige alle Ursachen für die Warnungen. Wenn du sie nicht verstehst: Fragen.



  • @techel stimmt hast recht habe garnicht daran gedacht, danke habs jetzt geschafft



  • Statt rand() nutzt man in heute in C++ die Funktionalitäten aus der <random> - Bibliothek. Ein enum, welches entsprechend Schere, Stein und Papier darstellt, ist auch zu empfehlen.


Log in to reply