Nimm Spiel.



  • Hi,

    Ich habe nur eine kleine Frage und zwar geht es hier um dieses Programm:

    #include <iostream>
    
    using namespace std;
    
    int schluss;
    
    int zugMensch(int anzahlDerMuenzen)
    {
       int ergebnis;
       cout<<"Jetzt liegen "<<anzahlDerMuenzen<<" Muenzen auf dem Tisch."<<endl;
       cout<<"Wieviele moechten Sie nehmen? ";
       cin>>ergebnis;
    
       if (ergebnis>3) {
           cout << "Sie dürfen nur maximal 3 Muenzen nehmen!!!" << endl;
    }   
    
       return ergebnis;
    }
    
    int zugRechner(int anzahlDerMuenzen)
    {
       int wunschZug=anzahlDerMuenzen%4;
       if(wunschZug==0)
          return 1;
       else
          return wunschZug;
    }
    
    int main()
    {  
       int anzahldermuenzen;
    
       // Eingabe der Anfangs-Münzenanzahl
       cout<<"Mit wievielen Muenzen fangen wir an? ";
       cin>>anzahldermuenzen;
    
       // endlosschleife
       while(true)
       {
          anzahldermuenzen=anzahldermuenzen-zugRechner(anzahldermuenzen);
          if(anzahldermuenzen==0)
          {
             cout<<"Ich habe gewonnen!"<<endl;
    
          }
          anzahldermuenzen=anzahldermuenzen-zugMensch(anzahldermuenzen);
          if(anzahldermuenzen==0)
          {
             cout<<"Sie haben gewonnen!"<<endl;
    
          }
       }
    }
    
    int funktionschluss() {
    cout << "Bitte eine Zahl eingeben um das Programm zu beenden!!!" << endl;
    cin >> schluss;
    }
    

    Falls der Spieler mehr als 3 Münzen nimmt habe ich die Nachricht "Sie dürfen nur maximal 3 Münzen nehmen" einbauen. Aber man könnte jetzt trotzdem schummeln und ich will wissen wie ich das verhindern kann. Also der Spieler soll praktisch zum letzten Zug zurück kommen...



  • du könntest eine Whileschleife um die Eingabe schreiben, die das Zahleneintragen solange wiederholt bis <= 3 eingegeben wurde. Is wohl die einfachste Variante.



  • Ok.

    Danke für die Antwort! 🙂


Anmelden zum Antworten