java

Adivina el número en Java – Programación de juego

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:

  1. Calcular un número mágico (Aleatorio) y convertirlo a su representación entera.
  2. Solicitar un número entero.
  3. El programa determinará con base al valor del número si “es mayor” o “es menor”.
  4. 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.
  5. 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

Adivinar número en Java – Programación de juego

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.