On peut utiliser une instance de la classe java.util.Random pour générer des nombres aléatoires en Java.
On peut générer un nombre entier aléatoire avec la méthode nextInt().
Elle génère une valeur dans l'intervalle allant de Integer.MIN_VALUE à Integer.MAX_VALUE.
Random random = new Random();
random.nextInt();
// => -1169335537
Pour limiter l'intervalle des valeurs générées, utilise nextInt(int).
Elle génère une valeur comprise entre 0 (inclus) et la borne supérieure donnée (exclue).
Par exemple, ceci génère un nombre aléatoire de 0 à 9.
Random random = new Random();
random.nextInt(10);
// => 6
Et ceci génère un nombre aléatoire de 10 à 19.
Random random = new Random();
10 + random.nextInt(10);
// => 11
On peut générer un nombre décimal aléatoire avec la méthode nextDouble().
Elle génère une valeur comprise entre 0.0 et 1.0.
Random random = new Random();
random.nextDouble();
// => 0.19250004204021398
Et ceci génère un nombre aléatoire de 100.0 à 200.0.
Random random = new Random();
100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328
Mary est une grande fan de la série Star Trek: The Next Generation. Elle joue souvent à des jeux de rôle papier, où elle et ses amis se font passer pour l'équipage du Starship Enterprise. Le personnage de Mary est le capitaine Picard, ce qui signifie qu'elle doit tenir le journal de bord du capitaine. Elle adore la part créative du jeu, mais n'aime pas devoir générer des données aléatoires à la volée.
Aide Mary en créant des générateurs aléatoires pour les données qui apparaissent couramment dans le journal de bord.
L'implémentation de départ de cet exercice prend une instance de java.util.Random comme argument de constructeur.
Cela permet aux tests de l'exercice de passer une instance avec une graine prédéfinie, ce qui rend les résultats des tests prévisibles.
Par conséquent, on attend de toi que tu utilises l'instance de java.util.Random fournie dans ton implémentation.
Le Starship Enterprise rencontre de nombreuses planètes au cours de ses voyages.
Dans l'univers de Star Trek, les planètes sont réparties en catégories selon leurs propriétés.
Par exemple, la Terre est une planète de classe M.
Toutes les classes planétaires possibles sont : D, H, J, K, L, M, N, R, T et Y.
Implémente la méthode randomPlanetClass().
Elle doit renvoyer l'une des classes planétaires au hasard.
captainsLog.randomPlanetClass();
// => "K"
L'Enterprise (numéro d'immatriculation NCC-1701) n'est pas le seul vaisseau à parcourir l'espace !
Quand il croise un autre vaisseau, Mary doit consigner le numéro d'immatriculation de ce vaisseau.
Les numéros d'immatriculation commencent par le préfixe « NCC- » puis utilisent un nombre compris entre 1000 et 9999 (inclus).
Implémente la méthode randomShipRegistryNumber() qui renvoie un numéro d'immatriculation de vaisseau aléatoire.
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
À quoi bon tenir un journal s'il ne contient pas de dates ?
Une date stellaire est un nombre à virgule flottante.
Les aventures du Starship Enterprise de la première saison de The Next Generation se déroulent entre les dates stellaires 41000.0 et 42000.0.
Le « 4 » correspond au 24e siècle, le « 1 » à la première saison.
Implémente la méthode randomStardate() qui renvoie un nombre à virgule flottante compris entre 41000.0 (inclus) et 42000.0 (exclu).
captainsLog.randomStardate();
// => 41458.15721310934
Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.