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

[SOLUCIONADO] Múltiplos de un número

Estas en el tema de Múltiplos de un número en el foro de C/C++ en Foros del Web. Hola a todos :)! Estoy haciendo una práctica en la que me dicen que se puede solicitar una pista cada 2 intentos y que solo ...
  #1 (permalink)  
Antiguo 30/07/2014, 04:38
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Múltiplos de un número

Hola a todos :)!

Estoy haciendo una práctica en la que me dicen que se puede solicitar una pista cada 2 intentos y que solo se puede solicitar 2 pistas como máximo.
Al decirme que solo se puede pedir cada 2 intentos,sé que tengo que verificar si "intentos" es múltiplo de 2 .
En cuanto a lo de solicitar como máximo 2 pistas,he creado dos contadores que se llaman: pistasDisponibles y pistasUsadas.

Se supone que si hasta el intento 4 no he pedido ninguna pista,acumulo entonces 2 pistas en "pistasDisponibles"(porque he pasado por el intento 2 y el intento 4 y ambos son múltiplos de 2) .Otro ejemplo,si en el intento 2 no he pedido pista ,se supone que sumo 1 a pistasDisponibles y que por tanto en el intento 3 puedo usarlo.

Sin embargo,mi código solo accede a darme pistas cuando es múltiplo de 2 ...
Espero puedan ayudarme ,gracias de antemano.
--------------------------------------------------------
Parte del if y else principales son exactamente iguales excepto por la condición if(pistasDisponibles >=0){..} que en el else,en lugar de 0,he puesto un 1 .


Código C++:
Ver original
  1. int pistasUsadas=0;
  2. int pistasDisponibles=0;
  3.  
  4. [...]
  5.  
  6. //Solo se puede conseguir pistas mientras que la variable intentos sea un múltiplo de 2.
  7.  
  8. if(intentos%2 == 0){   
  9.     pistasDisponibles++;
  10.            
  11.     if(pistasDisponibles >=0){
  12.           if(pistasUsadas < PISTAS_MAX){ //PISTAS_MAX es una constante con valor 2.
  13.              generarPista(secreto); //Función que me genera una pista
  14.               pistasUsadas++;   /*Cuando el usuario usa una pista,se incrementa la variable pistasUsadas porque se debe tener en cuenta que solo se      pueden dar 2 pistas. */
  15.                    
  16.                   pistasDisponibles--;     
  17.            }
  18.      else{
  19.               cout << "Lo siento!.Ya has gastado el maximo de pistas." << endl;
  20.       }
  21.       }
  22. }
  23.  
  24. else{
  25.     if(pistasDisponibles >=1){
  26.         //Lo mismo que he puesto en el if de arriba :)
  27.     }  
  28. }

Última edición por anggiebs; 30/07/2014 a las 04:45
  #2 (permalink)  
Antiguo 31/07/2014, 10:27
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Múltiplos de un número

Aunque nadie me contestó,encontré la solución y mejor lo dejo escrito por si le ayuda a alguien en algún momento :)
Para pedir pistas ,tenía que introducir " ! ".
El error estaba en que las pistasDisponibles solo las sumaba cuando el usuario había pulsado ! ,pero debería haber sumado cada vez que intentos sea un múltiplo de 2.Por tanto,lo tengo que hacer fuera del if que comprueba si se ha pedido pista.

Así :) :

Código C++:
Ver original
  1. [...]
  2.  
  3. else if((codigo == "!") && (pistasDisponibles <=0)){
  4.     if(pistasUsadas == 2){
  5.         cout << "Lo siento!.Ya has gastado el maximo de pistas." << endl;
  6.     }
  7.     else{
  8.         cout << "Lo siento!Puedes conseguir una pista cada 2 intentos" << endl;
  9.     }
  10.     ok=false;
  11. }
  12. else if(codigo == "!"){
  13.     ok=false;
  14.         if((pistasDisponibles>=1) && (pistasUsadas < PISTAS_MAX)){
  15.             generarPista(secreto);
  16.             pistasUsadas++; //Cuando el usuario usa una pista,se incrementa la variable pistasUsadas porque se debe tener en cuenta que solo se pueden dar 2 pistas.
  17.             pistasDisponibles--;
  18.         }
  19. }
  20.  
  21. [...]

Etiquetas: c++
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




La zona horaria es GMT -6. Ahora son las 15:54.