Intro
Ceci est basé sur un problème auquel j'ai récemment fait face lors de la création d'un jeu d'ordinateur et je pensais que cela ferait une belle partie de code-golf .
Il y a sept classes spectrales principales d'étoiles qui émettent des quantités variables de chaleur. La géologie des planètes autour d'une étoile est grandement influencée par la quantité de chaleur reçue par l'étoile, qui est un facteur de classe spectrale et de distance par rapport à l'étoile. Par conséquent, le mercure est pratiquement fondu, Neptune est gelé.
La galaxie dans mon jeu est générée procéduralement et la sélection aléatoire de types de planètes pour des étoiles données s’est avérée être un véritable "énoncé si l’enfer"!
Le défi
Votre méthode doit sélectionner une planète dans une liste de types de planète correspondant à la classe d'étoiles, en fonction d'un seuil de chaleur minimum, d'un seuil de chaleur maximum et d'un nombre aléatoire. Pour des raisons de simplicité, ce défi n’utilisera qu’une étoile de classe G, tout comme notre soleil.
Contributions
Un entier heat
compris entre 4 et 11 représentant la quantité de chaleur reçue par la planète par l'étoile.
Variables
Ce tableau montre les planètes possibles basées sur heat
. Votre méthode doit d’abord limiter les choix disponibles en fonction de la chaleur min et de la chaleur max heat
. Par exemple, avec une chaleur de 10, les seuls choix possibles sont Desert, Iron et Lava.
Planet type Heat min Heat max Random Chance
Gas Giant 4 9 15
Ice 4 6 10
Ice Giant 4 6 10
Gaia class 5 7 10
Dense Atmosphere 7 9 10
Desert 7 10 25
Iron 7 10 14
Lava 10 11 6
Ensuite, la probabilité qu'une planète (dans les choix restants) soit choisie est ses chances aléatoires divisées par la somme des chances aléatoires de tous les choix.
Dans l'exemple ci-dessus, la probabilité que le fer soit choisi est 14/(25+14+6)
.
Sortie
Renvoie le type de planète sous forme de chaîne.
Faites de votre mieux pour éviter les pointes de flèche logiques. Le code le plus court gagne, tout en points pour la créativité. Bon golf!