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.
Los requisitos son:
Veamos cómo hacer esto de manera simple y elegante en Java.
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
.
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);
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.