Trilhas
/
JavaScript
JavaScript
/
Exercícios
/
Diário do capitão
Diário do capitão

Diário do capitão

Exercício de aprendizagem

Introdução

Muitos programas precisam de valores (pseudo)aleatórios para simular eventos do mundo real.

Alguns exemplos comuns e familiares:

  • Um lançamento de moeda: um valor aleatório entre ('H', 'T').
  • O lançamento de um dado: um número inteiro aleatório de 1 a 6.
  • Embaralhar um baralho de cartas: uma ordenação aleatória de uma lista de cartas.
  • A criação de árvores e arbustos em uma simulação gráfica em 3D.

Gerar valores verdadeiramente aleatórios com um computador é um desafio técnico surpreendentemente difícil. Por isso também existem geradores "pseudoaleatórios".

Caution

A função Math.random() NÃO deve ser usada para aplicações de segurança e criptografia! Conclua o(s) exercício(s) de aprendizagem sobre este conceito para saber mais

Gerando números aleatórios

Em Javascript, você pode gerar números pseudoaleatórios usando a função Math.random(). Ela retorna um número de ponto flutuante pseudoaleatório entre 0 (inclusive) e 1 (exclusive).

Instruções

Mary é uma grande fã da série de TV Star Trek: The Next Generation. Ela costuma jogar RPG de mesa, em que ela e os amigos fingem ser a tripulação da nave estelar Enterprise. A personagem de Mary é o Capitão Picard, o que significa que ela precisa manter o diário de bordo do capitão. Ela adora a parte criativa do jogo, mas não gosta de gerar dados aleatórios na hora.

Ajude a Mary criando geradores aleatórios para os dados que costumam aparecer no diário de bordo do capitão.

1. Gere um número de registro de nave estelar aleatório

A Enterprise (número de registro NCC-1701) não é a única nave estelar voando por aí! Quando encontra outra nave estelar, Mary precisa anotar o número de registro dessa nave.

Os números de registro começam com o prefixo "NCC-" e depois usam um número de 1000 a 9999 (inclusive).

Implemente a função randomShipRegistryNumber() que retorna um número de registro de nave estelar aleatório.

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

2. Gere uma data estelar aleatória

De que serve um diário se ele não inclui datas?

Uma data estelar é um número de ponto flutuante. As aventuras da nave estelar Enterprise na primeira temporada de The Next Generation acontecem entre as datas estelares 41000.0 e 42000.0. O "4" representa o século XXIV, o "1" representa a primeira temporada.

Implemente a função randomStardate que retorna um número de ponto flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).

randomStardate();
// => 41458.15721310934

3. Gere um planeta aleatório

A nave estelar Enterprise encontra muitos planetas em suas viagens. No universo de Star Trek, os planetas são divididos em categorias com base em suas propriedades. Por exemplo, a Terra é um planeta de classe M. Todas as classes planetárias possíveis são: D, H, J, K, L, M, N, R, T e Y.

Implemente a função randomPlanetClass(). Ela deve retornar uma das classes planetárias aleatoriamente.

randomPlanetClass();
// => "K"
Editar via GitHub O link abre em uma nova janela ou aba
JavaScript Exercism

Tudo pronto para começar Diário do capitão?

Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.