Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Hacer un programa para adivinar 5 números del 0 al 9

Estas en el tema de Hacer un programa para adivinar 5 números del 0 al 9 en el foro de C/C++ en Foros del Web. Bueno, nuevamente apelo a la ayuda de los que saben C+. Si alguien no leyó el post anterior, me explico. Tengo una materia, programación, en ...
  #1 (permalink)  
Antiguo 15/11/2011, 08:30
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Pregunta Hacer un programa para adivinar 5 números del 0 al 9

Bueno, nuevamente apelo a la ayuda de los que saben C+. Si alguien no leyó el post anterior, me explico. Tengo una materia, programación, en la que el profesor no enseñó una chota en todo el año (hablando mal y pronto) y nos quiere mandar a todos a examen porque no sabemos nada (lógico!). Nos dio como última oportunidad hacer un programa, el cuál claro ninguno tiene la más mínima idea como hacer porque no sabemos nada porque el profesor debe ser el peor del mundo explicando cosas que ni el entiende.

En fin, la cosa es que tengo que hacer este programa y no tengo idea de cómo hacerlo. Es prácticamente hacerlo sin saber absolutamente nada creo que lo único que se es que para hacer "algo" hay que llamar a galerías o librerías (el profesor las llama indiferentemente de cualquier manera). Por eso me gustaría si:
1- Me pudieran facilitar algún material que ayudara a hacer esto
2- Cualquier iniciativa que me puedan tirar de como empezar también sería bienvenida.

Demás está decir que hace tiempo que estoy en el foro y no estoy pidiendo que nadie lo haga por mi.


Coloco lo que puso el profesor:
Cita:
Hacer un programa que es jugar a adivinar 5 números de 0 al 9.- La idea es que el ordenador elija 5 números no repetidos y nosotros en 10 jugadas como máximo tenemos que adivinar. Las pistas que nos debe dar el programa es si el numero introducido por el usuario esta en el mismo lugar que el creado por el ordenador se imprime $ y si el numero existe pero no esta en el lugar se imprime * en la pantalla.

Ejemplo:
Numero creado por el ordenador 5 3 7 8 4
Jugada primera 6 3 4 1 2 $*
Jugada segunda 5 7 8 4 6 $***

Y así sucesivamente hasta llegar a tener cinco $ o llegar a la decima jugada.
Para hacer esto deben usar vectores o array. Para que el computador genere los números hay que utilizar las instrucciones randomize y random


Como cargar un vector desde pantalla de cinco casilleros

Código C++:
Ver original
  1. for (i=0;i<5; i++)
  2. {scanf(&#8220;%d”, vector[i]),
  3. flushall);}

Como buscar un número en un vector

Código C++:
Ver original
  1. bandera=0;
  2. for (i=0;i<5; i++)
  3. {if (numero==vector[i]) bandera=1;}

Si el número existe la variable bandera va a tener el valor 1. (partimos de la premisa que no hay números repetidos)

Como inicializar un vector si va a contener valores en 0 y 9 entonces pongo en cada casillero el valor -1

Código C++:
Ver original
  1. for (i=0;i<5; i++)
  2.     vector[i]=-1;


Si yo tengo dos vectores con números y quiero saber cuántos están en el mismo lugar:

Código C++:
Ver original
  1. cantidad=0
  2. for (i=0;i<5; i++)
  3.     if (vec_adivinar[i]==vec_entrado[i]) cantidad=cantidad+1;
Vale decir que para mi es chino básico, nunca hicimos nada similar. Sé que las banderas sirven para algo específico porque lo he leído en varios lugares del foro, pero tampoco sé para qué.

Desde ya se agradece cualquier ayudita (me siento como indigente pidiendo moneditas). Igualmente estoy investigando por mis medios también, tratando de aprender todo lo que no nos enseñaron.

Gracias!
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #2 (permalink)  
Antiguo 16/11/2011, 12:04
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Nadie sabe hacer esto? :(
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #3 (permalink)  
Antiguo 16/11/2011, 13:33
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Empecemos de apoco. Para empezar asi generamos un numero aleatorio. Primero seteamos la semilla (recordar que los numeros son psudo-aleatorio) con srand. Apartir de ese momento es recomendable llamar a la funcion rand que devuelve un numero aleatorio.(No llames muchas veces a la funcion srand).

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main ()
  6. {
  7.   int n;
  8.   srand ( time(NULL) );
  9.   n = rand() ;
  10. }

Podemos usar el operador modulo "%" que devuelve el resto de la division para acotar el numero aleatorio entre 0 y 9.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int aleatorio()
  6. {
  7.       return rand()  % 10; // devuelve entre 0 y 9
  8. }
  9.  
  10. int main ()
  11. {
  12.   int n;
  13.   srand ( time(NULL) );
  14.   n = aleatorio() ;
  15. }


Por otro lado defines un vector con cinco numeros:

int numeros[5];

Viendo los apuntes del profe puedes crear esta funcion:

Código C:
Ver original
  1. int pertenece(int * vector, int numero)
  2. {
  3.     int bandera=0;
  4.     for (i=0;i<5; i++){
  5.         if (numero==vector[i])
  6.         bandera=1;
  7.      }
  8.      return bandera;
  9. }

Esta funcion devuelve uno si el numero pertenece al vector.

Ahora creemos un ciclo para crear 5 numero aleatorio y que no pertenescan.

Código C:
Ver original
  1. int i,numeros[5],a;
  2. for (i=0;i<5; i++)
  3.     numeros[i]=-1;
  4. for (i=0;i<5; i++) {
  5.      do {
  6.           a = aleatorio();
  7.      } while (pertenece(numeros,a) == 1  );
  8.       numeros[i] = a;
  9. }

Eso es todo para empezar...creo que va a ser un gran impacto si largo todo de cero. Fijate si entiendes o no. Mas o menos te di unos cuantos tips mas. Faltaria retorcar algunas cosas y hacer la parte del juego.
  #4 (permalink)  
Antiguo 16/11/2011, 13:57
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Muchas, muchas gracias. Hoy voy a ir con una profesora para que me ayude y voy a llevar estas notas, a ver si junto con esto puedo ir haciendo algo y luego lo vuelvo a postear, a ver que tal consigo hacerlo.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #5 (permalink)  
Antiguo 17/11/2011, 10:18
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Hasta el momento hice esto:

Pero me parece que algo no está bien.

Código C++:
Ver original
  1. #include <stdlib.h>
  2. #include <conio.h>
  3. #include <iostream.h>
  4. #include <time.h>
  5. void main ()
  6. {
  7. //cargar vector con 5 numeros random//
  8. for (int i=0; i<5, i++)
  9.     {scanf("%d", v_cargado[i]);
  10.     (flushall);
  11.     v_cargado[i]=random (9);
  12.     // Controlar que no se repita //
  13.     v_cargado[i] != v_cargado[i-1] hasta i=1;
  14.     while (i!=0);}
  15.     // Cargar 5 numeros random del 0 al 9 en un vector y no repita//
  16. {
  17. for (int j=0; j<5, j++)
  18.     {scanf("%d", v_entrado[j]);
  19.     printf("Ingresar un número");
  20.     scanf("%j", &v_entrado[j])}
  21.     if (j<9); //cargar vector para completar y controlar que el numero ingresado sea del 0 al 9//
  22.  
  23. bandera=0
  24. for (j=0;j<5;i++)
  25.     {if (numero==v_entrado[j]) bandera=1;
  26.     printf("*")}
  27. for (j=0;j<5;i++)
  28.     if(v_cargado[i]==v_entrado[j] cantidad=cantidad+1)
  29.     printf("$")
  30.  
  31.     getch();
  32. }

Cualquier ayuda es bienvenida! :)
Sam, no he sabido utilizar lo que me has dicho :S entiendo más o menos pero no lo he sabido utilizar. La profe me dijo con respecto a lo que me dijiste tu para cargar un número random de 0 al 9 que con poner la funcion random (9) alcanzaba, no hacía falta hacer restos.
Soy un desastre, que estress...
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #6 (permalink)  
Antiguo 17/11/2011, 12:28
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

A ver. Yo de programación sé lo siguiente:... ya acabé.

Pero como reto de lógica está interesante. A ver si te sirve.

Si fuera un solo número llegamos antes de 10 pasos evidentemente. con la premisa de ir dividiendo el total de numeros a la mitad. No es tan exacto porque no tenemos decimales.
X=8
1) Es más grande o más chico o igual a 5... R. Más grande
2) Es más grande o mas chico que 7.5 mas R. Más grande
3 ) + 0 - que 8.75 R= más chico
4) Resultado = 8.

En este caso si puedes usar un array, probablemente estas preguntas las haces por cada elemento del array y ya... ¿no?
  #7 (permalink)  
Antiguo 17/11/2011, 13:23
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Bueno ya con lo que t mostre anteriormente en el otro post, ya tenemos lo que es el vector de los 5 numeros aleatorios ahora toca hacer lo que tu dices, la forma mas "sencilla" o por lo menos para mi seri algo asi lo que faltaria hacer

Ocuparemos una variable llamada gano de tipo int en 0 y otra llamada turno puesta en 1

comenzariamos por mostrar el mensaje "Turno [" << turno << "]" y asi mostrariamos el turno en el que va y luego ingresar los 5 numeros luego de esto lo mas preferible seria guardarlos en un vector en su respectiva posicion, y ya ahora solo faltaria buscar estos en el vector original y ver si estan bien ordenadors o si por lo menos existe.

si existe y esta en la misma posicion a la respuesta le agregariamos $ y ademas aumentariamos la variable gano en +1, o si existe pero no es la misma posicion se le agrega *, y en ambos casos quebramos el bucle de busqueda para que vaya con el siguiente.

Al terminar los bucles aumentariamos el turno en + 1 y ya hecho esto, todo esto estaria dentro de otro bucle do{}while()
en donde en el while diria
Gano < 5 y turno <= 10 y asi veriamos si no gano y aun tiene turnos se repetira y ya al terminar todo esto ahora si solo queda ver

si gano es igual a 5 es que gano y le mostramos un mensake de felicitaciones sino pues le mostramos el mensaj de que perdio.

Bueno intenta hacerlo a como tu creas, estó es solamente un idea, si al final no puedes pues te dejo lo que yo hice comentado para que puedas entenderlo mejor n.n
  #8 (permalink)  
Antiguo 17/11/2011, 13:30
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Gracias a ambos.
Un colega forista me está ayudando para este trabajo.

Espero poderlo tener pronto y ver de que funcione y al menos pueda entender lo que estoy y me están haciendo.

Gracias, gracias, gacias y mil gracias a los que han dedicado su tiempo.
Cuanto esté terminado (que espero que así sea) haré la captura de pantalla de cómo ha quedado :).

Mil gracias!
Cualquier cosa vuelvo a preguntar.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #9 (permalink)  
Antiguo 17/11/2011, 13:38
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Ok, Mucha Suerte n_n*!

Cualquier cosa aqui estamos n_n

Sayo*! (me ire a desayunar ya es un poco tarde xD)
  #10 (permalink)  
Antiguo 17/11/2011, 13:39
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

No tengo palabras para gradecer el tiempo que se toma la gente en ayudar.
Millones de gracias.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #11 (permalink)  
Antiguo 18/11/2011, 02:36
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
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. }
  #12 (permalink)  
Antiguo 21/11/2011, 07:23
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Yo tambien lo hice!! Aunque un poco mas modularizado y en c++.. Un saludo!!
Código C++:
Ver original
  1. /* Genera una cadena de numeros que se tiene que adivinar. Por cada
  2. numero que se acierta se pone una "o" en el lugar. Por cada fallo un "x" */
  3.  
  4. #include <iostream>
  5. #include <cstdlib>
  6. #include <cstring>
  7. #include <ctime>
  8.  
  9. using namespace std;
  10.  
  11. /* Prototipos de las funciones */
  12. int elegirDificultad(void);
  13. void generarSecuencia(int* cad, int dim);
  14. bool unico(int* cad, int num);
  15. bool hayGanador(int* oculto, int dim);
  16. bool controlar(int* oculto, int* intento, int dim);
  17. void convertirCadena(char* intento, int* intentoNumerico, int dim);
  18.  
  19. /* Funcion Principal del Juego */
  20. int main(int argc, char* argv[]) {
  21.    int* oculto;   // Secuencia generada
  22.    int* intento;   // Secuencia del usuario
  23.    int dim;      // Dimension de la cadena (Dificultad del juego)
  24.    srand(time(NULL));
  25.    
  26.    cout << "********** ADIVINA EL NUMERO OCULTO **********" << endl;
  27.    dim = elegirDificultad() + 3;   // Dificultad del juego
  28.    oculto = new int[dim];
  29.    
  30.    generarSecuencia(oculto, dim);   // Genera la secuencia
  31.    if(!hayGanador(oculto, dim)) {      // Juego
  32.       cout << endl << "Lo sentimos. Mala suerte. Intentalo mas tarde" << endl;
  33.    } else {
  34.       cout << endl << "Felicidades!! Eres un experto. Aumenta la dificultad" << endl;
  35.    }
  36.    
  37.    return EXIT_SUCCESS;
  38. }
  39.  
  40. /**
  41.  * Se permite al usuario elegir la dificultad del juego
  42.  * @return: Dificultad del juego
  43. */
  44. int elegirDificultad(void) {
  45.    int dificultad=0;
  46.    while(dificultad != 1 && dificultad != 2 && dificultad != 3) {
  47.       cout << "Ingrese la dificultad:" << endl;
  48.       cout << "1. Facil" << endl << "2. Medio" << endl << "3. Dificil" << endl << endl;
  49.       cout << "Dificultad: ";
  50.       cin >> dificultad;
  51.    }
  52.    return dificultad;
  53. }
  54.  
  55. /**
  56.  * Genera la secuencia que hay que adivinar
  57.  * @var_cad: Guarda la cadena generada
  58.  * @var_dim: Dimension de la cadena generada
  59. */
  60. void generarSecuencia(int* cad, int dim) {
  61.    int i, num;
  62.    int salidos[10];
  63.    // Inicializa para el control de repetidos
  64.    for(i=0; i<10; i++) {
  65.       salidos[i] = 0;
  66.    }
  67.    for(i=0; i<dim; i++) {
  68.       num = rand() % 9 + 1;   // Genera numeros entre 1-9
  69.       while(!unico(salidos, num)) {   // Control de repetidos
  70.          num = rand() % 9 + 1;
  71.       }
  72.       salidos[i] = num;
  73.       cad[i] = num;
  74.    }
  75. }
  76.  
  77. /**
  78.  * Controla que no existan numeros repetidos en la cadena
  79.  * @var_cad: Numeros que ya salieron
  80.  * @var_num: Numero que se quiere insertar
  81.  * @return: true si puede agregarse, false si no se puede
  82. */
  83. bool unico(int* cad, int num) {
  84.    for (int i=0; i<10; i++) {
  85.       if(cad[i] == num) {
  86.          return false;
  87.       }
  88.    }
  89.    return true;
  90. }
  91.  
  92. /**
  93.  * Argumento del juego
  94.  * @var_oculto: Secuencia a adivinar
  95.  * @var_dim: Dimension de la secuencia
  96.  * @return: true si hay ganador ; false si no hay
  97. */
  98. bool hayGanador(int* oculto, int dim) {
  99.    bool win=false;         // Para ver si hay ganador o no
  100.    char intento[dim];      // Secuencia del usuario
  101.    int intentoNumerico[dim];
  102.    int numIntentos=0;      // Cantidad de intentos
  103.    int maxIntentos=dim*2;   // Intentos Maximos
  104.    
  105.    while(!win && numIntentos < maxIntentos) {
  106.       cout << endl << "Ingrese el numero de " << dim << " cifras." << endl;
  107.       cout << "Intento nro: " << ++numIntentos << " de " << maxIntentos << endl;
  108.       cin >> intento;
  109.       if(strlen(intento) == dim) {
  110.          convertirCadena(intento, intentoNumerico, dim);
  111.          win = controlar(oculto, intentoNumerico, dim);
  112.       }
  113.    }
  114.    
  115.    return win;
  116. }
  117.  
  118. /**
  119.  * Convierte la cadena del usuario a una numerica
  120.  * @var_intento: Secuencia del usuario
  121.  * @var_intentoNumerico: Secuencia numerica
  122.  * @var_dim: Dimension de la secuencia
  123. */
  124. void convertirCadena(char* intento, int* intentoNumerico, int dim) {
  125.    for(int i=0; i<dim; i++) {
  126.       switch(intento[i]) {
  127.          case '1':
  128.             intentoNumerico[i] = 1;
  129.             break;
  130.          case '2':
  131.             intentoNumerico[i] = 2;
  132.             break;
  133.          case '3':
  134.             intentoNumerico[i] = 3;
  135.             break;
  136.          case '4':
  137.             intentoNumerico[i] = 4;
  138.             break;
  139.          case '5':
  140.             intentoNumerico[i] = 5;
  141.             break;
  142.          case '6':
  143.             intentoNumerico[i] = 6;
  144.             break;
  145.          case '7':
  146.             intentoNumerico[i] = 7;
  147.             break;
  148.          case '8':
  149.             intentoNumerico[i] = 8;
  150.             break;
  151.          case '9':
  152.             intentoNumerico[i] = 9;
  153.             break;
  154.       }
  155.    }
  156. }
  157.  
  158. /**
  159.  * Controla los aciertos del usuario
  160.  * @var_oculto: Secuencia a adivinar
  161.  * @var_intento: Secuencia del usuario
  162.  * @var_dim: Dimension de la secuencia
  163.  * @return: true si adivino todo ; false si no acerto
  164. */
  165. bool controlar(int* oculto, int* intento, int dim) {
  166.    int aciertosFaltantes=dim;
  167.    for(int i=0; i<dim; i++) {
  168.       if(oculto[i] == intento[i]) {
  169.          cout << "o";
  170.          aciertosFaltantes--;
  171.       } else {
  172.          cout << "x";
  173.       }
  174.    }
  175.    cout << endl;
  176.    return !aciertosFaltantes;
  177. }
  #13 (permalink)  
Antiguo 29/11/2011, 12:24
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Ya había logrado resolver este temita. Pero de todas maneras agradezco a los que se tomaron e tiempo para ayudarme. Me quedo con las propuestas que hagan para aprender de lo que hicieron y ver como se pueden usar varias cosas para resolver el mismo problema.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom

Etiquetas: adivinar, programa, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:22.