En este post te mostraré el código de Java para el ejercicio de adivinar el número, mismo que si vemos de algún modo es un juego.
El programa consiste en que la computadora piensa un número y el usuario trata de adivinarlo. En caso de que el usuario no acierte, la computadora le da una pista indicando si el número es mayor o menor.
Descripción del ejercicio
Los requisitos son:
- Calcular un número mágico (Aleatorio) y convertirlo a su representación entera.
- Solicitar un número entero.
- El programa determinará con base al valor del número si “es mayor” o “es menor”.
- Se solicitará cuantas veces sea necesario hasta que el número introducido sea igual al número mágico y terminará la ejecución del programa.
- Utiliza la estructura while o do.
Veamos cómo hacer esto de manera simple y elegante en Java.
Obteniendo número aleatorio
Recuerda que en posts anteriores ya te mostré cómo obtener un número mágico o mejor dicho un número aleatorio con Java usando ThreadLocalRandom
.
Adivina el número en Java
Vayamos al código. Primero generamos el número aleatorio (en este caso está entre 1 y 99) y luego creamos un Scanner que nos permitirá leer datos por teclado o mejor dicho leer la entrada estándar.
// Generar número aleatorio entre 1 y 100
int numeroMagico = ThreadLocalRandom.current().nextInt(1, 100);
// Crear Scanner para leer del teclado
Scanner sc = new Scanner(System.in);
Después de eso vamos a hacer un ciclo do while que se va a ejecutar mientras el usuario no acierte el número. Además, dentro del ciclo vamos a darle pistas al usuario para indicarle si el número aleatorio es menor o mayor:
// Solicitar un número al usuario
int numeroUsuario;
do {
System.out.println("Intenta adivinar el número que he pensado. Ingresa tu propuesta: ");
numeroUsuario = sc.nextInt();
if (numeroMagico > numeroUsuario) {
System.out.println("El número que he pensado es mayor que el introducido");
} else if (numeroMagico < numeroUsuario) {
System.out.println("El número que he pensado es menor que el introducido");
}
} while (numeroMagico != numeroUsuario);
Finalmente cuando el ciclo se rompa (y esto será cuando el usuario haya adivinado el número en este programa de Java) se mostrará un mensaje de felicitación:
// Si termina el ciclo while es porque los números son iguales. Felicitamos al usuario
System.out.println("Has acertado, el número que pensé fue: " + numeroMagico);
Poniendo todo junto
El código completo queda como se ve a continuación:
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
/*
* Visita mi blog para más ejercicios de Java:
* https://parzibyte.me/blog
* */
public static void main(String[] args) {
// Generar número aleatorio entre 1 y 100
int numeroMagico = ThreadLocalRandom.current().nextInt(1, 100);
// Crear Scanner para leer del teclado
Scanner sc = new Scanner(System.in);
// Solicitar un número al usuario
int numeroUsuario;
do {
System.out.println("Intenta adivinar el número que he pensado. Ingresa tu propuesta: ");
numeroUsuario = sc.nextInt();
if (numeroMagico > numeroUsuario) {
System.out.println("El número que he pensado es mayor que el introducido");
} else if (numeroMagico < numeroUsuario) {
System.out.println("El número que he pensado es menor que el introducido");
}
} while (numeroMagico != numeroUsuario);
// Si termina el ciclo while es porque los números son iguales. Felicitamos al usuario
System.out.println("Has acertado, el número que pensé fue: " + numeroMagico);
}
}
Ya has visto la ejecución del programa en el encabezado de este apartado.
Para terminar te dejo con más tutoriales de Java en mi blog.