Percursos
/
Java
Java
/
Exercícios
/
Diário de bordo do capitão
Diário de bordo do capitão

Diário de bordo 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 com o método nextInt(). Isto irá 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, usa nextInt(int). Isto irá gerar um valor no intervalo de 0 (incluído) até ao limite superior indicado (excluído).

Por exemplo, isto irá gerar um número aleatório de 0 a 9.

Random random = new Random();

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

E isto irá gerar um número aleatório de 10 a 19.

Random random = new Random();

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

Doubles aleatórios

Um double aleatório pode ser gerado com o método nextDouble(). Isto irá gerar um valor no intervalo de 0.0 a 1.0.

Random random = new Random();

random.nextDouble();
// => 0.19250004204021398

E isto irá 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

A Mary é uma grande fã da série de televisão Star Trek: The Next Generation. Joga muitas vezes jogos de interpretação de papéis com papel e caneta, nos quais ela e os amigos fingem ser a tripulação da Starship Enterprise. A personagem da Mary é o Capitão Picard, o que significa que tem de manter o diário de bordo do capitão. Adora a parte criativa do jogo, mas não gosta de inventar dados aleatórios na hora.

Ajuda a Mary a criar geradores aleatórios para dados que aparecem habitualmente 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. Isto 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 uses a instância de java.util.Random fornecida na tua implementação.

1. Gera um planeta aleatório

A Starship Enterprise encontra muitos planetas nas suas viagens. No universo de Star Trek, os planetas dividem-se em categorias com base nas 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.

Implementa o método randomPlanetClass(). Deve devolver uma das classes planetárias, de forma aleatória.

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

2. Gera um número de registo de nave estelar aleatório

A Enterprise (número de registo NCC-1701) não é a única nave estelar a voar por aí! Quando se encontra com outra nave estelar, a Mary precisa de registar o número de registo dessa nave.

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

Implementa o método randomShipRegistryNumber() que devolve um número de registo de nave estelar aleatório.

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

3. Gera uma data estelar aleatória

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

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

Implementa o método randomStardate() que devolve um número de vírgula flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).

captainsLog.randomStardate();
// => 41458.15721310934
Editar via GitHub A ligação abre numa nova janela ou separador
Java Exercism

Estás pronto para começar Diário de bordo do capitão?

Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.