Autor Tema: Java. Clase Random y alguno de sus métodos System.currentTimeMillis CU00672B  (Leído 2557 veces)

dferna

  • Sin experiencia
  • *
  • Mensajes: 25
    • Ver Perfil
Buenas  ;)

Aquí expongo mi solución al ejercicio de "Adivinar número" de la entrega CU00672B del curso elemental de programación Java con IDE BlueJ.

Esta es la clase principal con el main

Código: [Seleccionar]
package aplicacion;

import utilidades.Utilidades;
import aleatorio.NumeroAleatorio;

public class AdivinarNumero {

public static void main(String[] args) {

Utilidades utilidades = new Utilidades();
NumeroAleatorio nAleatorio = new NumeroAleatorio();
int numeroIntroducido = 0;
int nAleatorioGenerado = 0;

nAleatorioGenerado = nAleatorio.generarNumeroAleatorio();
System.out.println("Se ha generado un número aleatorio entre 1 y 100, intente adivinarlo.");
numeroIntroducido = utilidades.pideNumero();

while (numeroIntroducido != nAleatorioGenerado) {

if (nAleatorioGenerado < numeroIntroducido) {
System.out.println("No has acertado: el número es menor. Prueba otra vez.");
} else if (nAleatorioGenerado > numeroIntroducido) {
System.out.println("No has acertado: el número es mayor. Prueba otra vez.");
}
numeroIntroducido = utilidades.pideNumero();
}
System.out.println("Enhorabuena has acertado el número secreto.");
}

}

Esta clase contiene solo un método que genera el numero aleatorio en el rango especificado. Utilizo "System.currentTimeMillis()" para que cada vez que me genere el número aleatorio la semilla sea diferente.

Código: [Seleccionar]
package aleatorio;

import java.util.Random;

public class NumeroAleatorio {


public NumeroAleatorio(){

}


public int generarNumeroAleatorio(){
Random numAleatorio = new Random(System.currentTimeMillis());
//Generar número aleatorio int entre 1 y 100
int intNumeroAleatorio = 1+numAleatorio.nextInt(100);

return intNumeroAleatorio;
}
}

Y por último he desacoplado un poco mas el código sacando a otra clase de otro paquete los métodos de pedida de datos.

Código: [Seleccionar]
package utilidades;

import java.util.Scanner;

public class Utilidades {

public int pideNumero() {

Scanner sc = new Scanner(System.in);
int entradaTeclado = sc.nextInt();

return entradaTeclado;
}

public String pideCadena() {

Scanner sc = new Scanner(System.in);
String entradaTeclado = sc.nextLine();

return entradaTeclado;
}
}


Aquí dejo una salida por pantalla de una prueba.

Código: [Seleccionar]
Se ha generado un número aleatorio entre 1 y 100, intente adivinarlo.
30
No has acertado: el número es mayor. Prueba otra vez.
70
No has acertado: el número es menor. Prueba otra vez.
40
No has acertado: el número es menor. Prueba otra vez.
35
No has acertado: el número es menor. Prueba otra vez.
33
No has acertado: el número es menor. Prueba otra vez.
32
No has acertado: el número es menor. Prueba otra vez.
31
Enhorabuena has acertado el número secreto.


Saludos  ;)
« Última modificación: 17 de Junio 2017, 13:05 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Resolución ejercicio Adivinar número CU00672B
« Respuesta #1 en: 08 de Abril 2017, 18:27 »
Hola dferna.

El ejercicio está bien resuelto, solo comentarte que la clase que llamas Utilidades sería más adecuado un nombre que describa el propósito de esta clase, por ejemplo EntradaDeTeclado o algo que haga referencia a ello.

Te dejo un enlace donde se habla sobre como dar nombres adecuados a las calses.

https://www.aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

Saludos. ;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".