Artículos
Java

Número al Azar en Java

08/Abr/2007

Seguro que más de una vez habéis jugado a esto. La idea es simple. Una persona piensa un número entre 1 y 10, mientras que otra persona intenta adivinarlo. Para ello, la persona que conoce el número le va diciendo si el número que busca es mayor o menor que el que ha dicho.

En nuestro caso, quien pensará en el número y dirá si lo dicho es mayor o menor será un programa Java.

Es recomendable el leer los artículos «Leer caracteres por consola en Java» y «Número aleatorio en Java». Los cuales nos ayudarán mucho en la realización de nuestro juego.

Lo primero será generar un número aleatorio entre 1 y 10. Para ello utilizaremos el método .random() de la clase Math. Como esta clase genera números aleatorios del 0.1 al 0.9 tendremos que multiplicarlo por 10 y sumarle un 1.

numeroAleatorio = (int) (Math.random()*10+1);

Posteriormente tendremos que pedir por consola el número. Para leer el número nos apoyaremos en la clase System.in

numeroTeclado = System.in.read();

Hay que recordar que el número leído estará almacenado en carácter ASCII dentro de un tipo de dato int. Un buen truco para calcular el número real es restarle el valor ASCII del carácter que representa al número cero.

Los pasos para obtener el número serán los siguientes:

int cero = (int)'0';
numeroTeclado = System.in.read();
numeroTeclado = numeroTeclado - cero;

Con el número aleatorio y el número obtenido por consola tendremos que realizar algunas comprobaciones. Para indicarle al usuario si el número buscado es mayor, menor o si acierta.

if (numeroTeclado > numeroAleatorio) {
  System.out.println ("El número buscado es menor");
}

if (numeroTeclado < numeroAleatorio) {
  System.out.println ("El número buscado es mayor");
}

Todo esto lo tendremos que tener en un bucle, hasta que acierte el usuario.

Lo último que tendremos que tener en cuenta es que cuando el usuario teclea un número y pulsa la tecla intro se generan tres caracteres ASCII.

carácter ASCII del numero + 13 + 10

El carácter 13 y 10 representan el salto de línea y retorno de carro. Es por ello que entre cada lectura habrá que saltarse la lectura de dos caracteres. Esto lo conseguimos mediante el método .skip(numerocaracteres).

System.in.skip(2);

Código Fuente

Descárgate el código fuente de Número al Azar en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
11 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios