Track
/
Java
Java
/
Esercizi
/
Diario del capitano
Diario del capitano

Diario del capitano

Esercizio di apprendimento

Introduzione

Casualità

Un'istanza della classe java.util.Random può essere usata per generare numeri casuali in Java.

Numeri interi casuali

Un numero intero casuale può essere generato usando il metodo nextInt(). Questo genera un valore nell'intervallo da Integer.MIN_VALUE a Integer.MAX_VALUE.

Random random = new Random();

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

Per limitare l'intervallo dei valori generati, usa nextInt(int). Questo genera un valore nell'intervallo da 0 (incluso) al limite superiore indicato (escluso).

Per esempio, questo genera un numero casuale da 0 a 9.

Random random = new Random();

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

E questo genera un numero casuale da 10 a 19.

Random random = new Random();

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

Numeri in virgola mobile casuali

Un numero in virgola mobile casuale può essere generato usando il metodo nextDouble(). Questo genera un valore nell'intervallo da 0.0 a 1.0.

Random random = new Random();

random.nextDouble();
// => 0.19250004204021398

E questo genera un numero casuale da 100.0 a 200.0.

Random random = new Random();

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

Istruzioni

Mary è una grande fan della serie TV Star Trek: The Next Generation. Spesso gioca a giochi di ruolo cartacei, in cui lei e i suoi amici fingono di essere l'equipaggio della Starship Enterprise. Il personaggio di Mary è il Capitano Picard, il che significa che deve tenere il diario di bordo del capitano. Ama la parte creativa del gioco, ma non le piace generare dati casuali sul momento.

Aiuta Mary creando dei generatori casuali per i dati che compaiono abitualmente nel diario di bordo del capitano.

Note

L'implementazione iniziale di questo esercizio accetta come argomento del costruttore un'istanza di java.util.Random. Questo permette ai test dell'esercizio di passare un'istanza con un seed predefinito, il che rende prevedibili i risultati dei test.

Per questo motivo, ci si aspetta che tu usi l'istanza di java.util.Random fornita nell'implementazione.

1. Genera un pianeta casuale

Nei suoi viaggi, la Starship Enterprise incontra molti pianeti. I pianeti dell'universo di Star Trek sono divisi in categorie in base alle loro proprietà. Per esempio, la Terra è un pianeta di classe M. Tutte le classi planetarie possibili sono: D, H, J, K, L, M, N, R, T e Y.

Implementa il metodo randomPlanetClass(). Deve restituire una delle classi planetarie, scelta a caso.

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

2. Genera un numero di registrazione casuale di un'astronave

L'Enterprise (numero di registrazione NCC-1701) non è l'unica astronave in circolazione! Quando si incontra con un'altra astronave, Mary deve annotare il numero di registrazione di quell'astronave.

I numeri di registrazione iniziano con il prefisso "NCC-" e poi usano un numero da 1000 a 9999 (inclusi).

Implementa il metodo randomShipRegistryNumber() che restituisce un numero di registrazione casuale di un'astronave.

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

3. Genera una data stellare casuale

A cosa serve un diario di bordo se non contiene le date?

Una data stellare è un numero in virgola mobile. Le avventure della Starship Enterprise della prima stagione di The Next Generation si svolgono tra le date stellari 41000.0 e 42000.0. Il "4" sta per il XXIV secolo e il "1" per la prima stagione.

Implementa il metodo randomStardate() che restituisce un numero in virgola mobile compreso tra 41000.0 (incluso) e 42000.0 (escluso).

captainsLog.randomStardate();
// => 41458.15721310934
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Java Exercism

Vuoi iniziare Diario del capitano?

Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.