Abelsor

SimonDiceC++

May 6th, 2022 (edited)
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.63 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4.  
  5. using namespace std;
  6.  
  7. void delay(int);
  8. void seleccionar_dificultad();
  9. int numero_aleatorio(int, int);
  10. void almacenar_respuesta(int);
  11. bool verificar_respuesta(int, int, int);
  12. void clear();
  13.  
  14. const int MAX_LEVEL = 255;
  15. int secuencia[MAX_LEVEL];
  16. int respuesta[MAX_LEVEL];
  17. int limite_superior;
  18. int dificultad;
  19. int nivel = 1;
  20. int numero_errores = 0;
  21. bool bandera = true;
  22.  
  23. int main()
  24. {
  25.     seleccionar_dificultad();
  26.        
  27.     while(bandera){
  28.         secuencia[nivel-1] = numero_aleatorio(1,limite_superior);
  29.        
  30.         for(int i=0 ; i<nivel ;i++){
  31.             cout<<secuencia[i]<<endl;
  32.             delay(1);
  33.         }
  34.         delay(2);
  35.         clear();
  36.        
  37.         cout<<"/////////////"<<endl;
  38.        
  39.         almacenar_respuesta(nivel);
  40.        
  41.         nivel++;
  42.        
  43.         if(numero_errores == 5)
  44.             bandera = false;       
  45.  
  46.     }  
  47.    
  48.     cout<<"\n-----------------  El juego ha acabado  -----------------------"<<endl;
  49.     cout<<"\nPuntaje: "<<nivel-numero_errores-1<<endl;
  50. }
  51.  
  52. ////////////////////////////  Seleccionar nivel de Dificultad  /////////////////////////////////////////
  53. void seleccionar_dificultad()
  54. {
  55.     do{
  56.         cout<<"Seleccione el nivel de dificultad: "<<endl;
  57.         cout<<"-1 Facil \n-2 Medio \n-3 Dificil"<<endl;
  58.         cout<<" -> "; cin>>dificultad;
  59.     }
  60.     while(dificultad<1 or dificultad>3);
  61.    
  62.     switch(dificultad){
  63.         case 1:
  64.             limite_superior = 5;
  65.             break;
  66.         case 2:
  67.             limite_superior = 20;
  68.             break;
  69.         case 3:
  70.             limite_superior = 100;
  71.         break;
  72.     }
  73.    
  74.     cout<<"///////////////////////////////////////////////////\n\t\tEMPIEZA EL JUEGO\n///////////////////////////////////////////////////"<<endl;
  75.     cout<<"  Observe, memorice y repita la secuencia de numeros\n///////////////////////////////////////////////////"<<endl;
  76.     delay(5);
  77. }
  78. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  79.  
  80. ////////////////////////  Funcion que nos permite retrasar el programa  ////////////////////////////////
  81. void delay(int secs)
  82. {
  83.     for(int i = (time(NULL) + secs); time(NULL) != i; time(NULL));
  84. }
  85. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  86.  
  87. ////////////////////////  Funcion que nos devulve un numero aleatorio en el rango deseado //////////////
  88. int numero_aleatorio(int limite_inferior, int limite_superior)
  89. {
  90.     srand(time(NULL));
  91.     return (limite_inferior+rand()%(limite_superior-limite_inferior-1));   
  92. }
  93. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  94.  
  95. //////////////////  Funcion que compara las respuesta del jugador con la secuencia dada  ///////////////
  96. bool verificar_respuesta(int secuencia[], int respuesta[], int nivel)
  97. {
  98.     if(secuencia[nivel]==respuesta[nivel])
  99.         return true;
  100.     else
  101.         return false;
  102. }
  103. ///////////////////////////////////////////////////////////////////////////////////////////////////////
  104.  
  105. /////////////////////////////  Funcion que Almacena las respuestas del Jugador  ///////////////////////
  106. void almacenar_respuesta(int nivel)
  107. {
  108.     int j=0;
  109.     while(j<nivel){
  110.         cout<<" ->"; cin>>respuesta[j];
  111.         if(verificar_respuesta(secuencia, respuesta, j)){
  112.             j++;
  113.         }
  114.         else{
  115.             j=nivel;
  116.             cout<<"---------------------  ERROR  -------------------"<<endl;
  117.             numero_errores++;
  118.         }
  119.     }
  120.     cout<<"\n/////////////"<<endl;
  121. }
  122. //////////////////////////////////////////////////////////////////////////////////////////////////////
  123.  
  124. //////////////////////////////////  Limpiar Consola  /////////////////////////////////////////////////
  125. void clear()
  126. {
  127.     cout << "\x1B[2J\x1B[H";
  128. }
  129. //////////////////////////////////////////////////////////////////////////////////////////////////////
  130.  
  131.  
Add Comment
Please, Sign In to add comment