Generando Números Aleatorios en Java
La generación de números aleatorios es un componente esencial en muchas partes de la programación. En Java, existen diversas formas para generar estos, pero hoy nos centraremos en como hacerlo para desarrollar un juego de adivinación de números.
Empleando la Clase Math
La clase Math en Java contiene funciones que son útiles para realizar operaciones matemáticas. Una de estas funciones es random(), que regresa un número decimal entre 0.0 y 1.0 de forma aleatoria.
import java.util.Scanner; public class AdivinarNumero { public static void main(String[] args) { int numero = (int)(Math.random() * 100) + 1; int intento = 0; Scanner scanner = new Scanner(System.in); while(true) { System.out.println("Adivina el número entre 1 y 100:"); int entrada = scanner.nextInt(); intento++; if(entrada < numero) { System.out.println("El número es mayor."); } else if (entrada > numero) { System.out.println("El número es menor."); } else { System.out.println("¡Correcto! Has adivinado en " + intento + " intentos."); break; } } } }
Este código utiliza la función random() para generar un número aleatorio entre 1 y 100. Luego, ingresa a un ciclo donde solicita al usuario ingresar un número. Si el número ingresado es menor o mayor al número generado, se le dará una pista al usuario. Este proceso continuará hasta que el usuario adivine el número correcto.
Uso de la Clase Random
La clase Java.util.Random también se puede utilizar para generar números aleatorios en Java. La ventaja de utilizar la clase Random sobre la función Math.random() es que esta proporciona un mayor control sobre el rango de los números aleatorios generados.
import java.util.Scanner; import java.util.Random; public class AdivinarNumero { public static void main(String[] args) { Random rng = new Random(); int numero = rng.nextInt(100) + 1; int intento = 0; Scanner scanner = new Scanner(System.in); while(true) { System.out.println("Adivina el número entre 1 y 100:"); int entrada = scanner.nextInt(); intento++; if(entrada < numero) { System.out.println("El número es mayor."); } else if (entrada > numero) { System.out.println("El número es menor."); } else { System.out.println("¡Correcto! Has adivinado en " + intento + " intentos."); break; } } } }
Este código es muy similar al código anterior con la única diferencia de que utiliza la clase Random para generar un número aleatorio.