Track
/
JavaScript
JavaScript
/
Esercizi
/
Diario del capitano
Diario del capitano

Diario del capitano

Esercizio di apprendimento

Introduzione

Molti programmi hanno bisogno di valori (pseudo)casuali per simulare eventi del mondo reale.

Tra gli esempi più comuni e familiari:

  • Il lancio di una moneta: un valore casuale tra ('H', 'T').
  • Il tiro di un dado: un numero intero casuale da 1 a 6.
  • Mescolare un mazzo di carte: un ordinamento casuale di un array di carte.
  • La creazione di alberi e cespugli in una simulazione grafica 3D.

Generare valori davvero casuali con un computer è una sfida tecnica sorprendentemente difficile, ed è per questo che esistono anche i generatori «pseudocasuali».

Caution

La funzione Math.random() NON deve essere usata per applicazioni di sicurezza e crittografia! Completa gli esercizi di apprendimento su questo concetto per saperne di più

Generare numeri casuali

In Javascript, puoi generare numeri pseudocasuali usando la funzione Math.random(). Restituirà un numero pseudocasuale in virgola mobile compreso tra 0 (incluso) e 1 (escluso).

Istruzioni

Mary è una grande fan della serie TV Star Trek: The Next Generation. Spesso gioca a giochi di ruolo con carta e penna, dove lei e i suoi amici fingono di essere l'equipaggio dell'astronave Enterprise. Il personaggio di Mary è il capitano Picard, il che significa che deve tenere il diario del capitano. Adora 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 più spesso nel diario del capitano.

1. Genera un numero di registro casuale per un'astronave

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

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

Implementa la funzione randomShipRegistryNumber() che restituisce un numero di registro casuale per un'astronave.

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

2. Genera una data stellare casuale

A cosa serve un diario se non include le date?

Una data stellare è un numero in virgola mobile. Le avventure dell'astronave 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, l'"1" per la prima stagione.

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

randomStardate();
// => 41458.15721310934

3. Genera un pianeta casuale

L'astronave Enterprise incontra molti pianeti nei suoi viaggi. I pianeti dell'universo di Star Trek sono suddivisi 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 la funzione randomPlanetClass(). Dovrebbe restituire una delle classi planetarie a caso.

randomPlanetClass();
// => "K"
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
JavaScript Exercism

Vuoi iniziare Diario del capitano?

Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.