Ver Mensaje Individual
  #11 (permalink)  
Antiguo 18/11/2011, 02:36
Avatar de s00rk
s00rk
 
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años
Puntos: 48
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Bueno como dudo mucho conectarme mañana y asi pues aqui dejo lo que yo hice por si aun tienes dudas y asi no dejarlo por ahi que luego se me olvida jejej

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <iostream.h>
  4. using namespace std;
  5.  
  6. int main(){
  7.     int V[5]; // Crear nuestro vector de 5 casillas donde guardaremos los numeros aleatorios
  8.     int n; // Aqui guardaremos el numero random que obtengamos con random(9)
  9.     bool existe; // Usaremos para checar si el numero existe en el vector
  10.    
  11.     ///////////////// Llenar el Vector V con numeros aleatorios
  12.     for(int i = 0; i < 5; i++) // Ir de 0 a 4, que son las casillas en el vector
  13.     {
  14.             srand((unsigned)time(0)); // Es utilizado para que luego al llamar rand(), este genere uno diferente, si no colocmos esto, rand() siempre retornara los mismos numeros
  15.             do{
  16.                 existe = false; // Ponemos el checador en false
  17.                 n = rand() % 10; // Se guarda el numero random en n
  18.                 for(int x = 0; x < i; x++) // Recorremos el vector de 0 a i-1( x < i, es lo mismo a poner x <= i-1)
  19.                 {
  20.                         if(V[x] == n) // Checamos si el valor del vector en la posicion x es igual a n
  21.                         {
  22.                                 existe = true; // Si es asi cambiamos existe a true
  23.                                 break; // Y terminamos el bucle for
  24.                         }
  25.                 }
  26.             }while(existe); // Hara esto mientras existe == true
  27.            
  28.             V[i] = n; // Guardamos en n en el vector en la posicion i
  29.     }
  30.     ///////////////////////////////////////////////
  31.    
  32.    
  33.     /// Imprimir el Resultado de los numeros aleatorios /////////////
  34.     /// Esto solo lo ponemos por si deceamos saber que numeros son los correctos
  35.     cout << "Resultado" << endl;
  36.     for(int i = 0; i < 5; i++)
  37.     {
  38.             cout << V[i] << endl;
  39.     }
  40.     cout << endl;
  41.     ////////////////////////////////////////////////////////////////
  42.    
  43.     ///////////  Juego     /////////////////////////////////////////
  44.     int R[5]; // Crear nuestro vector de 5 casillas donde guardaremos las respuestas
  45.     int gano; // Con esto checaremos luego si el usuario gano
  46.     int turno = 1; // Total de oportunidades
  47.     string respuesta; // Aqui guardaremos las respuesta de $ y *
  48.     do
  49.     {
  50.             cout << "Oportunidad [" << turno << "]:" << endl; // Imprimimos la oportunidad en la que va
  51.             cin>>R[0];//
  52.             cin>>R[1];//
  53.             cin>>R[2];// Ingresamos cada numero en una casilla del vector R que es de 5 casillas al igual que V
  54.             cin>>R[3];//
  55.             cin>>R[4];//
  56.             respuesta = ""; // Ponemos respuesta vacio ""
  57.             gano = 0; // Ponemos gano en 0
  58.             for(int i = 0; i < 5; i++) // Bucle para recorrer en vector V
  59.             {
  60.                     for(int ii = 0; ii < 5; ii++) // Bucle para recorrer el vector R
  61.                     {
  62.                             if(V[i] == R[ii] && i == ii) // Si el valor de V en la posicion i es igual a el valor de R en la posicion ii y ademas i es igual a ii
  63.                                                          // significa que el valor son lo mismos y ademas estan en la misma posicion
  64.                             {
  65.                                   respuesta += "$"; // Agregamos a respuesta el signo $
  66.                                   gano++; // Aumentamos gano +1
  67.                                   break; // Salimos del Bucle
  68.                             }else if(V[i] == R[ii]){ // O si el valor de V en la posicion i es igual a R en la posicion ii son los mismos, pero i es diferente a ii
  69.                                                      // Significa que los valores son los mismos pero estan en diferentes posiciones
  70.                                                      
  71.                                   respuesta += "*"; // Agregamos a respuesta *
  72.                                   break; // Salimos del Bucle
  73.                             }
  74.                     }
  75.             }
  76.             cout << respuesta << endl; // Imprimimos respuesta que contendra los $ y * , segun el resultado de lo anterior
  77.             turno++; // Aumentamos turno + 1
  78.     }while(gano < 5 && turno <= 10); // Si gano es menor a 5 y turno es menor o igual a 10 se repite lo anterior
  79.    
  80.     cout << endl; // Saltode linea o espacio
  81.     if(gano == 5) // Si gano es igual a 5, significa que el usuario a ganado
  82.     {
  83.           cout << "Usted ha Ganado! ;D" << endl; // Imprimimos mensaje de felicitaciones n_n
  84.     }else{ // Si no
  85.           cout << "Usted ha Perdido u_u" << endl;  // Imprimimos mensaje de que perdio
  86.     }
  87.     ///////////////////////////////////////////////////////////
  88.    
  89.     cin.get();cin.get();
  90.     return 0;
  91. }