Ir al contenido

Número al Azar en Java

Seguro que más de una vez has jugado a esto. La idea es simple: una persona piensa un número entre 1 y 10 y otra intenta adivinarlo.

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

Es recomendable leer estos artículos:

Te ayudarán en la construcción del 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 función genera números aleatorios entre 0 y 1, tendremos que multiplicar por 10 y sumar 1.

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

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

int numeroTeclado = System.in.read();

Hay que recordar que el número leído estará almacenado como carácter ASCII dentro de un int.

Un truco para calcular el número real es restarle el valor ASCII del carácter que representa al número cero.

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

Con el número aleatorio y el número obtenido por consola tendremos que realizar comprobaciones para indicarle a la persona usuaria si el número buscado es mayor, menor, o si ha acertado.

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 meter en un bucle hasta que se acierte.

Cuando se teclea un número y se pulsa Intro se generan varios caracteres ASCII (el número, más retorno de carro y salto de línea).

Por ello, entre cada lectura habrá que saltarse dos caracteres. Esto lo conseguimos mediante el método .skip(numeroCaracteres).

System.in.skip(2);
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Número al Azar en Java

Uso de la clase Math para poder calcular un número al Azar en Java.

Descargar código