elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [help] Acertar un numero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [help] Acertar un numero  (Leído 2,329 veces)
sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
[help] Acertar un numero
« en: 23 Enero 2014, 15:48 pm »

Buenas,

Tengo un problema en un juego de acertar un número, el usuario primero introduce un vector, luego tiene que acertar un numero del vector, cuando llegas a 3 intentos salta un mensaje diciendo que se te han acabado los intentos.

El problema que tengo es que si acierto si me sale correcto pero hago más de 3 intentos incorrectos y no me sale el aviso.


Código
  1. case 4:
  2.                      system("cls");
  3.                      if (error != 3) {
  4.                                printf("\tJUEGO DE ACERTAR UN NUMERO");
  5.                                printf("\n------------------------------\n");
  6.                                printf("Escribe un numero: ");
  7.                                scanf("%d", &num);
  8.  
  9.                                for (i=0; i<5; i++){
  10.                                    if (num == vector[i]) encontrado=1;
  11.                                }
  12.                                for (i=0; i<5; i++){
  13.                                    if (num != vector[i]) error=error+1;
  14.                                }
  15.  
  16.                                if (encontrado == 1){
  17.                                               printf("ENHORABUENA! Has acertado un numero!");
  18.                                               getch();
  19.                                }// fin if
  20.                      }//fin if
  21.                      else {
  22.                           printf("\nYa has hecho tres intentos");
  23.                           getch();
  24.                           }
  25.                      break;

A ver si me pueden echar un cable, gracias :)


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #1 en: 23 Enero 2014, 16:18 pm »

Te has liado un poco.

Hazte una función que te diga si un numero se encuentra en un vector o no:

Código
  1. char seEncuentra(int vector[],int num)
  2. {
  3.    for (i=0; i<5; i++){
  4.        if (num == vector[i]) return 1;
  5.    }
  6.  
  7.    return 0;
  8. }

Y repite la entrada de datos (el scanf) mientras que esta funcion de 1 o el número de errores sea distinto de 3. Una vez fuera del bucle tendrás que mirar con un if que acción provocó la salida del bucle.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #2 en: 23 Enero 2014, 16:20 pm »

Gracias por responder!

Me lo podrías decir sin funciones?

Porque de momento en este tema no lo estudio, gracias =)
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #3 en: 23 Enero 2014, 16:53 pm »

Código
  1. case 4:
  2.    system("cls");
  3.    while (error <= 3)  //suponiendo que error = 1 cuando declaras la variable
  4.    {
  5.        printf("\tJUEGO DE ACERTAR UN NUMERO");
  6.        printf("\n------------------------------\n");
  7.        printf("Escribe un numero: ");
  8.        scanf("%d", &num);
  9.  
  10.        for (i=0; i<5; i++)
  11.        {
  12.            if (num == vector[i])
  13.                encontrado=1;
  14.        }
  15.  
  16.        for (i=0; i<5; i++)
  17.        {
  18.            if (num != vector[i])
  19.                error=error+1;
  20.        }
  21.  
  22.        if (encontrado == 1)
  23.        {
  24.            printf("ENHORABUENA! Has acertado un numero!");
  25.            getch();  // nunca me termino de gustar esta función
  26.            break;
  27.        }// fin if
  28.  
  29.        if (error == 3)
  30.        {
  31.            printf("\nYa has hecho tres intentos");
  32.            getch();  // nuevamente, apesta... yo usaria getchar() pero da igual
  33.            break;
  34.        } // fin if
  35.  
  36.    }//fin while
  37.    break;
  38.  

Bueno, es una sugerencia.

slds
« Última modificación: 23 Enero 2014, 17:01 pm por dato000 » En línea


sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #4 en: 23 Enero 2014, 17:13 pm »

Gracias por la ayuda "dato000", pero cuando hago un fallo me vuelve al menú (es normal) pero cuando quiero volver a entrar a la opción del menú ya no me entra.


Saludos

En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #5 en: 23 Enero 2014, 17:43 pm »

ni idea, eso ya seria la parte del main, puede que el valor de la opción del menú nunca cambia en el switch que realizas, por lo que necesitas un while o un do-while para hacer una correcta comprobación de la opción del menú.
En línea


amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #6 en: 23 Enero 2014, 19:34 pm »

ni idea, eso ya seria la parte del main, puede que el valor de la opción del menú nunca cambia en el switch que realizas, por lo que necesitas un while o un do-while para hacer una correcta comprobación de la opción del menú.
No, lo que pasa esque tienes que reinicializar la variable error a cero.

Gracias por responder!

Me lo podrías decir sin funciones?

Porque de momento en este tema no lo estudio, gracias =)
Código
  1. while (error <= 3)
  2.   {
  3.       printf("\tJUEGO DE ACERTAR UN NUMERO");
  4.       printf("\n------------------------------\n");
  5.       printf("Escribe un numero: ");
  6.       scanf("%d", &num);
  7.  
  8.       for (i=0; i<5; i++)
  9.       {
  10.           if (num == vector[i])
  11.           {
  12.               encontrado=1;
  13.               i = 5;
  14.           }
  15.       }
  16.  
  17.       if (encontrado == 1)
  18.       {
  19.           printf("ENHORABUENA! Has acertado un numero!");
  20.           getch();  // nunca me termino de gustar esta función
  21.           break;
  22.       }// fin if
  23.  
  24.       error++;
  25.  
  26.       if (error == 3)
  27.       {
  28.           printf("\nYa has hecho tres intentos");
  29.           getch();  // nuevamente, apesta... yo usaria getchar() pero da igual
  30.           break;
  31.       } // fin if
  32.   }
  33.   error = 0;
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #7 en: 23 Enero 2014, 19:44 pm »

ah fuck!! cierto no cai en cuenta con eso...  :P :P
En línea


sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: [help] Acertar un numero
« Respuesta #8 en: 23 Enero 2014, 21:39 pm »

Ahí le has dado "amchacon"  ;-) ;-) ;-) ;-)

Muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] Comprobar si un numero dado es un numero de la suerte « 1 2 ... 5 6 »
Programación Visual Basic
Karcrack 53 21,888 Último mensaje 17 Agosto 2010, 23:58 pm
por Dessa
Convertidor de número literal a número real
Programación C/C++
david_BS 0 2,429 Último mensaje 6 Mayo 2012, 21:34 pm
por david_BS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines