Autor Tema: Java generar números enteros aleatorios ejercicio resuelto del tutorial CU00672B  (Leído 3205 veces)

rubens23

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
    • Ver Perfil
Generar números aleatorios en Java. Clase Random y método nextInt.

Citar
Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador


CLASE AdivinaNumero

Código: [Seleccionar]
package aprender;
import java.util.Random;
public class AdivinaNumero {
Random numAleatorio;
int n;
public AdivinaNumero(){
System.out.println("Se ha generado un número aleatorio entero entre 1 y 100, intente adivinarlo");
}
public Integer getNumero(){
numAleatorio = new Random();
n= numAleatorio.nextInt(101);
return n;
}
}



Clase Test con main

Código: [Seleccionar]
package aprender;
import javax.swing.JOptionPane;
public class TestAdivinaNumero {
public static void main (String [] args){
AdivinaNumero num = new AdivinaNumero();
String entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
int entr = Integer.valueOf(entrada);
int adv = num.getNumero();
do{
if (entr < adv){
System.out.println("No has acertado: el número aleatorio es mayor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
if (entr >adv){
System.out.println("No has acertado: el número aleatorio es menor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
}while ( entr != adv);
System.out.println("Has acertado el numero. \nGracias por jugar");
}
}
« Última modificación: 24 de Junio 2015, 12:22 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Hola rubens23! El programa funciona bien. Como consejos de mejora tendriamos los siguientes:

No introducir un System.out.println dentro de un constructor. El constructor se usa para inicializar los campos de la clase.

El bucle do que has planteado se ejecuta siempre al menos una vez, puedes simplificarlo poniendo la condición al principio de modo que si se adivinó el número no se entre al bucle, de esta manera

Código: [Seleccionar]
while ( entr != adv){
if (entr < adv){
System.out.println("No has acertado: el número aleatorio es mayor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
if (entr >adv){
System.out.println("No has acertado: el número aleatorio es menor. \nPrueba otra vez ");
entrada = JOptionPane.showInputDialog ( "Introduzca un número entre 1 y 100:" );
entr = Integer.valueOf(entrada);
}
}

También me parece que si utilizas ventanas deberías mostrar todos los mensajes usando ventanas, no mezclar la ventana con la consola porque no se sabe muy bien dónde hay que mirar.

Saludos cordiales  :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".