Ripetizione programma c++

di il
1 risposte

Ripetizione programma c++

Ripetizione programma c++
ciao ragazzi ho fatto un programma/gioco in cui l'utente deve indovinare il numero generato casualmente dal computer. non riesco a far si che si ripeta però. quando finisco la prima volta poi mi chiede se voglio continuare. inserisco “s” ed esce di nuovo la scelta della dificoltà. inserisco la scelta della difficoltà ed esce ancora “vuoi continuare?”. questo succede anche con il while… non riesco a capire quale sia il problema. il codice è:
#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include<stdlib.h> 
      
using namespace std;

int tentativi;
bool indovinato;
int numero;
int prova;
int scelta_diff;
int diff;

void SetColor(short Color) 
{ 
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); 
SetConsoleTextAttribute(hCon,Color); 
}

void difficolta()
{      
     srand(time(0));
     numero=(rand()%diff)+1;
      
     while(tentativi>0 && indovinato==false)
     {
               SetColor(14);
               cout<<"INDOVINA IL NUMERO SU "<<diff<<endl;
               SetColor(15);
               cout<<"Hai "<<tentativi<<" tentativi."<<endl;
          
               do
               {
                  cout<<"inserisci numero: ";
                  cin>>prova;
               }
               while(prova<1 || prova>diff);
          
               tentativi--;
          
               if(prova==numero)
               {
                   indovinato=true;
                   SetColor(10);
                   cout<<"Complimenti! Hai indovinato."<<endl;
                   cout<<"Avevi ancora "<<tentativi<<" tentativi.";
                   SetColor(15);
                
               }
               else
               {
              
                   if(numero>prova)
                   {
                      SetColor(12);
                      cout<<"Il numero e' piu' grande."<<endl;
                      SetColor(15);
                   }
                   else
                   {
                      SetColor(12);
                      cout<<"il numero e' piu' piccolo."<<endl;
                      SetColor(15);
                   }
                 
                   system("cls");     
               }
     }
      
     if(indovinato==false)
     {
          cout<<"Non ce l'hai fatta! Il numero era: "<<numero<<endl;
     }
}

int main()
{
     indovinato=false;
     char continua='n';
     do{  
         do
         {
           SetColor(14);
           cout<<"INDOVINA IL NUMERO!"<<endl;
           SetColor(15);
           cout<<"scegliere difficolta': "<<endl;
           cout<<"premi 1 = facile (su 50 numeri)"<<endl;
           cout<<"premi 2 = normale (su 100 numeri)"<<endl;
           cout<<"premi 3 = difficile (su 200 numeri)"<<endl<<endl;
           cin>>scelta_diff;
           system("cls");
         }
         while(scelta_diff<1 || scelta_diff>3);
         
         switch(scelta_diff)
         {
         case(1):
                 tentativi=10;
                 diff=50;
                 difficolta();
         break;
         
         case(2):
                 tentativi=8;
                 diff=100;
                 difficolta();
         break;
         
         case(3):
                 tentativi=6;
                 diff=200;
                 difficolta();
         break;
         }
         
        cout<<"Vuoi continuare? (S/N)"<<endl;
        cin>>continua;
    }
    while(continua=='s'||continua=='S');
    return 0;

while(!kbhit());
}

1 Risposte

  • Re: Ripetizione programma c++

    Ho provato e il ciclo funziona regolarmente ... (ovviamente l'ultimo while dopo il return non ha senso) ...
Devi accedere o registrarti per scrivere nel forum
1 risposte