Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: david82 en 14 de Julio 2017, 00:32

Título: Java. Clase Random. Generar números aleatorios en un rango cómo definir CU00672B
Publicado por: david82 en 14 de Julio 2017, 00:32
Esta es mi solución para el ejercicio CU00672B del tutorial Aprende programación Java como si estuviera en primero de aprenderaprogramar.

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void SetEntrada(){entrada = entradaTeclado.nextLine();}

public String GetEntrada(){return entrada;}

}

Código: [Seleccionar]
import java.util.Random;

public class GenerarAleatorio {
private int numero;
private Random aleatorio = new Random();

public GenerarAleatorio() {
numero = aleatorio.nextInt(100);
System.out.println("Se ha generado un número entre 0 y 100. Intente adivinarlo");
}

public int getAleatorio(){return numero;}
}

Código: [Seleccionar]
public class TestGenerarAl {

public static void main(String[] args) {
GenerarAleatorio adivinar = new GenerarAleatorio();
EntradaDeTeclado entrada = new EntradaDeTeclado();
int miNumero;

entrada.SetEntrada();
miNumero=Integer.valueOf(entrada.GetEntrada());

while(adivinar.getAleatorio()!=miNumero)
{
if(miNumero>adivinar.getAleatorio())
{
   System.out.println("No has acertado: el número es menor. Prueba otra vez");
   entrada.SetEntrada();
}
else if(miNumero<adivinar.getAleatorio())
{
System.out.println("No has acertado: el número es mayor. Prueba otra vez");
entrada.SetEntrada();
}
else
{}
miNumero=Integer.valueOf(entrada.GetEntrada());
}

if(miNumero==adivinar.getAleatorio())
System.out.println("Felicidades! Ha adivinado! El número era "+adivinar.getAleatorio());
}
}
Título: Re:Ejercicio Generar Números aleatorios en Java (CU00672B)
Publicado por: pedro,, en 22 de Julio 2017, 20:01
Hola David.

El ejercicio pedía crear un número aleatorio entre 1 y 100, y el código lo crea entre 0 y 100.
También recomendarte algún cambio en la clase GenerarAleatorio, el constructor no debe imprimir mensajes por consola ni nada parecido, el constructor tiene que llevar lo necesario para crear un objeto GenerarAleatorio en este caso, es decir, necesita ese mensaje que puedes mostrar desde cualquier otro sitio.
Otro tema que debes cuidar es el nombre que le das a las clases, en este caso la clase representaría a un  número aleatorio, con lo que un nombre como NumeroAleatorio hubiese sido más acertado. GenerarAleatorio quedaría mejor como nombre de un método.

Saludos. ;D