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

Diário do capitão

Exercício de aprendizagem

Introdução

Aleatoriedade

Uma instância da classe java.util.Random pode ser usada para gerar números aleatórios em Java.

Números inteiros aleatórios

Um número inteiro aleatório pode ser gerado usando o método nextInt(). Isso vai gerar um valor no intervalo de Integer.MIN_VALUE a Integer.MAX_VALUE.

Random random = new Random();

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

Para limitar o intervalo dos valores gerados, use nextInt(int). Isso vai gerar um valor no intervalo de 0 (inclusive) até o limite superior informado (exclusivo).

Por exemplo, isso vai gerar um número aleatório de 0 a 9.

Random random = new Random();

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

E isso vai gerar um número aleatório de 10 a 19.

Random random = new Random();

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

Números de ponto flutuante aleatórios

Um número de ponto flutuante aleatório pode ser gerado usando o método nextDouble(). Isso vai gerar um valor no intervalo de 0.0 a 1.0.

Random random = new Random();

random.nextDouble();
// => 0.19250004204021398

E isso vai gerar um número aleatório de 100.0 a 200.0.

Random random = new Random();

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

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 seus amigos fingem ser a tripulação da Starship 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 Mary criando geradores aleatórios para os dados que costumam aparecer no diário de bordo do capitão.

Note

A implementação inicial deste exercício recebe uma instância de java.util.Random como argumento do construtor. Isso permite que os testes do exercício passem uma instância com uma semente predefinida, o que torna os resultados dos testes previsíveis.

Por isso, espera-se que você use a instância de java.util.Random fornecida na sua implementação.

1. Gere um planeta aleatório

A Starship 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 o método randomPlanetClass(). Ele deve retornar uma das classes planetárias de forma aleatória.

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

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

A Enterprise (número de registro NCC-1701) não é a única nave espacial voando por aí! Quando ela se encontra com outra nave, 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 o método randomShipRegistryNumber() que retorna um número de registro de nave aleatório.

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

3. 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 Starship 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 e o "1", a primeira temporada.

Implemente o método randomStardate() que retorna um número de ponto flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).

captainsLog.randomStardate();
// => 41458.15721310934
Editar via GitHub O link abre em uma nova janela ou aba
Java Exercism

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

Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.