Brauche Hilfe, mein Programm scheint sich aufzuhängen



  • Hallo,
    ich habe vor ca. 2 Wochen angefangen mich fürs programmieren zu interessieren und habe mit c++ begonnen. Ich möchte momentan ein kleines text basiertes spiel schreiben, wo unter anderem auch ein Kampfsystem enthalten seien soll.
    Es funktioniert auch soweit nur will die Schleife nicht. Das erste mal ausführen klappt ohne Probleme, doch dann passiert gar nichts mehr, soll heißen das man nichts mehr eingeben kann und auch nicht enter drücken kann. Zur info: enter();
    ist eine selbst geschriebene Funktion die cin.sync(); und cin.get(); enthält.

    cout<<"Deine Angriffststaerke: "<<Angriffswert<<endl;
    cout<<"Deine Leben: "<<leben;
    enter();
    cout<<"Angriffstaerke deines Gegners: "<<monster_stärke<<endl;
    cout<<"Leben deines Gegners: "<<monster_leben<<endl<<endl;

    while(leben >= 0 || monster_leben >= 0){
    if (heiltränke > 0) {
    enter();
    cout<<"1: Angreifen"<<endl;
    cout<<"2: Einen Heiltrank nehmen"<<endl;
    cout<<"Was möchtest du tun ?: ";
    cin>> kampfauswahl;

    switch(kampfauswahl){

    case 2:

    cout<<"Du nimmst einen Heiltrank,deine Leben wurden um 5 erhöt"<<endl;

    heiltränke -= 1;
    leben += 5;
    cout<<"Du hast nun wieder "<<leben<<" Leben"<<endl;
    //enter();
    break;

    default:
    Angriffswert= dolch_int + dolch_int2 + langschwert + schwert + kreide + schild + pistole + speer + 5;
    monster_leben -= Angriffswert;
    cout<<"Du greifst das Monster an,es hat nun nur noch "<<monster_leben<<" Leben."<<endl;
    //enter();

    }

    }

    if (heiltränke = 0) {
    enter();
    cout<<"1: Angreifen"<<endl;
    cout<<"Was möchtest du tun ?: ";
    cin>> kampfauswahl;

    switch(kampfauswahl){
    case 1:
    Angriffswert= dolch_int + dolch_int2 + langschwert + schwert + kreide + schild + pistole + speer + 5;
    monster_leben -= Angriffswert;
    cout<<"Du greifst das Monster an,es hat nun nur noch "<<monster_leben<<" Leben."<<endl;
    enter();
    break;

    default:
    Angriffswert= dolch_int + dolch_int2 + langschwert + schwert + kreide + schild + pistole + speer + 5;
    monster_leben -= Angriffswert;
    cout<<"Du greifst das Monster an,es hat nun nur noch "<<monster_leben<<" Leben."<<endl;
    //enter();
    }

    }

    }


  • Mod

    = ist eine Zuweisung, kein Vergleich. Vergleich ist ==. Mehr kann ich nicht sagen, da dein Code unlesbar ist, es ist das einzige, was ich beim Drübergucken gesehen habe. Beim nächsten Mal benutz die Codetags (unter dem Editfenster, unter den Smileys) und die Vorschau, um sicher zu gehen, dass dein Beitrag lesbar ist.



  • Danke, das war tatsächlich das Problem, ich werde im nächst den code übersichtlicher posten.
    Vielen Dank


Anmelden zum Antworten