Rutas
/
Java
Java
/
Ejercicios
/
Diario del capitán
Diario del capitán

Diario del capitán

Ejercicio de aprendizaje

Introducción

Aleatoriedad

Se puede usar una instancia de la clase java.util.Random para generar números aleatorios en Java.

Números enteros aleatorios

Se puede generar un número entero aleatorio con el método nextInt(). Esto generará un valor en el rango desde Integer.MIN_VALUE hasta Integer.MAX_VALUE.

Random random = new Random();

random.nextInt();
// => -1169335537

Para limitar el rango de los valores generados, usa nextInt(int). Esto generará un valor en el rango desde 0 (incluido) hasta el límite superior indicado (excluido).

Por ejemplo, esto generará un número aleatorio del 0 al 9.

Random random = new Random();

random.nextInt(10);
// => 6

Y esto generará un número aleatorio del 10 al 19.

Random random = new Random();

10 + random.nextInt(10);
// => 11

Números decimales aleatorios

Se puede generar un número decimal aleatorio con el método nextDouble(). Esto generará un valor en el rango desde 0.0 hasta 1.0.

Random random = new Random();

random.nextDouble();
// => 0.19250004204021398

Y esto generará un número aleatorio desde 100.0 hasta 200.0.

Random random = new Random();

100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328

Instrucciones

Mary es una gran fan de la serie de televisión Star Trek: The Next Generation. A menudo juega a juegos de rol de lápiz y papel, en los que ella y sus amigos se hacen pasar por la tripulación de la Starship Enterprise. El personaje de Mary es el capitán Picard, lo que significa que tiene que llevar el cuaderno de bitácora del capitán. Le encanta la parte creativa del juego, pero no le gusta tener que generar datos aleatorios sobre la marcha.

Ayuda a Mary creando generadores aleatorios para los datos que suelen aparecer en el cuaderno de bitácora del capitán.

Note

La implementación inicial de este ejercicio recibe una instancia de java.util.Random como argumento del constructor. Esto permite que los tests del ejercicio pasen una instancia con una semilla predefinida, lo que hace que los resultados de los tests sean predecibles.

Por lo tanto, se espera que uses en tu implementación la instancia de java.util.Random proporcionada.

1. Genera un planeta aleatorio

La Starship Enterprise se encuentra con muchos planetas en sus viajes. Los planetas del universo de Star Trek se dividen en categorías según sus propiedades. Por ejemplo, la Tierra es un planeta de clase M. Todas las clases planetarias posibles son: D, H, J, K, L, M, N, R, T y Y.

Implementa el método randomPlanetClass(). Debe devolver una de las clases planetarias de forma aleatoria.

captainsLog.randomPlanetClass();
// => "K"

2. Genera un número de registro de nave estelar aleatorio

¡La Enterprise (número de registro NCC-1701) no es la única nave estelar que vuela por el espacio! Cuando se encuentra con otra nave estelar, Mary necesita registrar el número de registro de esa nave.

Los números de registro empiezan por el prefijo «NCC-» y después usan un número del 1000 al 9999 (ambos incluidos).

Implementa el método randomShipRegistryNumber() que devuelve un número de registro de nave estelar aleatorio.

captainsLog.randomShipRegistryNumber();
// => "NCC-1947"

3. Genera una fecha estelar aleatoria

¿De qué sirve un cuaderno de bitácora si no incluye fechas?

Una fecha estelar es un número de coma flotante. Las aventuras de la Starship Enterprise de la primera temporada de The Next Generation transcurren entre las fechas estelares 41000.0 y 42000.0. El «4» corresponde al siglo XXIV y el «1», a la primera temporada.

Implementa el método randomStardate() que devuelve un número de coma flotante entre 41000.0 (incluido) y 42000.0 (excluido).

captainsLog.randomStardate();
// => 41458.15721310934
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Java Exercism

¿Listo para empezar Diario del capitán?

Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.