Java - Ayuda con un programa de adivinanza, para contar numeros

   
Vista:

Ayuda con un programa de adivinanza, para contar numeros

Publicado por Alejandro (9 intervenciones) el 01/06/2015 11:33:29
Buenas, estoy haciendo un programa en el que un usuario introduce un numero del 1 al 100 y otra persona en cuestion tiene 5 intentos para adivinarlo., en cada intento se debe de decir el numero de digitos que están bien dichos.
vale, el unico problema que tengo es que si introduce el 100 y digo el 10, solo me cuenta 1 y no dos...
Si alguien puede ver el fallo lo agradecería pues me atascado ahi.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class practica2 {
    public static int sacaDigito (int numero, int cifra) {
        int limite;
        if(cifra==1) {
            numero=numero%10;
        }else{
            limite=(int)Math.pow(10,cifra);
            while(numero > limite) {
            numero=numero/10;
            }//Fin Mientras         
        }//FIn Si
        return numero;
    }//Fin Función
    public static byte cifras(int numero){
        //Entorno:
            int cifra;
        //Algoritmo:
            cifra = 1;
            while(numero >= Math.pow(10, cifra)){
                cifra++;
            }//Fin Mientras
            return (byte)(cifra);
    }
    public static void main(String[] args) {
       //Entorno:
            int num,intento, cifras,i;
            byte intentos,aciertos;
            boolean esGanador;
       //Algoritmo:
            intentos=5;
        esGanador=false;
        do {
            System.out.print("Inserte un número entre 1 y 100: ");
            num=Leer.datoInt();
        }while(num<1 || num >100);
        cifras=cifras(num);
        System.out.println("adivine el número. Le quedan: " +intentos+" intentos");
        intento=Leer.datoInt();
        if(intento==num) {
                esGanador=true;
        }//Fin Si
        while(intentos >1 && esGanador==false) {
                aciertos=0;
                i=1;
                while(i<=cifras) {
                    if(sacaDigito(num,i)==sacaDigito(intento,i)) {
                        aciertos++;
                    }//Fin SI
                    i++;
                }//Fin Mientras
                System.out.println("Nº de cifras correctas: " + aciertos);
                intentos--;
            System.out.println("Intente adivinar el número. Intentos restantes: " + intentos);
            intento=Leer.datoInt();
            if(intento==num) {
                    esGanador=true;
            }//Fin Si
        }//Fin Mientras
        if(esGanador) {
            System.out.println("Has ganado.");
        }else{
            System.out.println("Has perdido.");
        }//Fin Si
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con un programa de adivinanza, para contar numeros

Publicado por noxcraft (1 intervención) el 01/06/2015 23:33:59
Te upeo el tema suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar