Adivinar Número Aleatorio en Java [SOLUCIONADO]

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.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad