Código del juego de adivinar un número aleatorio en Java

Bueno, pues aprovechando que estoy empezando con esto del Java he hecho un pequeño programa que funciona como un juego. El código genera un número aleatorio entre 1 y 100 y el jugador dispone de 5 intentos para averiguar cuál es. El programa te indica con cada intento su estás por debajo o por encima del número secreto, te da una pista antes del cuarto intento y te avisa de la última oportunidad. Este es mi código:

import java.util.Scanner;

public class JavaApplication1 {

public static void main(String[] args) {

 Scanner sc = new Scanner(System.in);

 int a = (int) ((Math.random() * 100)+1); // Número aleatorio de 1 a 100.
 int b; // Número introducido por el usuario.
 int i; // Contador para bucle for.

 System.out.println("El juego consiste en averiguar un número secreto de 100 posibles.");

 System.out.print("Tienes 5 intentos. Escribe un número entre 1 y 100: ");
 b = sc.nextInt();

 for (i=0; i<=4; i++) { 

    // Primero se evalúa si se ha acertado.
    
    if (a == b) {  
      System.out.println("¡Has acertado!"); 
      break; } 
    
    // Luego da la partida por perdida si ya has gastado 5 intentos.     
    
    else if (i == 4) { 
      System.out.println("Lo siento: ¡has perdido!. El número era el: " + a); 
      break; } 
    
    // Si no es ninguno de los casos anteriores, comparamos números.
    
    else if (a > b) 
      System.out.println("El número secreto es MAYOR que " + b);
    else if (a < b)
      System.out.println("El número secreto es MENOR que " + b);

    // Por último un bucle if que sirve para dar una pista y avisarte de la última oportunidad.
    
    if (i <=1) { 
     System.out.print("Otro intento: "); 
     b = sc.nextInt(); } 
    else if (i ==2) { 
    int x = (int) (a/10);
    System.out.println("Una pista, la primera cifra es " + x);
    System.out.print("Inténtalo de nuevo: ");
    b = sc.nextInt(); } 
   else if (i >= 3) {
   System.out.print("Oh, oh... ÚLTIMO intento: ");
   b = sc.nextInt(); }
    }
  }
}

 

No es un código complicado y estoy convencido que mucha gente podría hacerlo de forma más eficiente (con un do-while, por ejemplo), pero funcionar funciona perfectamente y estoy satisfecho con ello.

A diferencia del código “básico” que podría valer para el juego, éste tiene las siguientes particularidades:

  • Tiene un número limitado de intentos, en este caso 5, lo que lo hace más interesante de jugar.
  • Te da una pista después de tercer intento: la primera cifra.
  • Te avisa de la última oportunidad.
  • Te da la solución en caso de perder.
  • El juego abarca del 1 al 100 en lugar del 0 al 99 que es la salida por defecto de Math.random() * 100.

Compílalo y comprueba que… ¡no es nada fácil ganar!

Para saber más:
Código de Java – Adivinar Número Aleatorio.
C++ – Adivina Número Aleatorio.
Random – Sortear números – Juego de adivinar número.

Una respuesta a “Código del juego de adivinar un número aleatorio en Java”

Deja una respuesta