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.
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


0