Introdução
Isso se baseia em um problema real que recentemente enfrentei ao criar um jogo de computador e achei que seria uma boa rodada de golfe com código .
Existem sete classes espectrais principais de estrelas que emitem quantidades variáveis de calor. A geologia dos planetas ao redor de uma estrela é grandemente influenciada pela quantidade de calor recebido da estrela, que é um fator de classe espectral e distância da estrela. Portanto, Mercúrio é praticamente derretido, Netuno congelado.
A galáxia do meu jogo é gerada proceduralmente e a seleção aleatória de tipos de planeta para determinadas estrelas acabou sendo um verdadeiro 'inferno de afirmações'!
O desafio
Seu método deve selecionar um planeta a partir de uma lista de tipos de planeta apropriados para a classe de estrela, com base em um limite mínimo de calor, um limite máximo de calor e um número aleatório. Por simplicidade, esse desafio usará apenas uma estrela da classe G, assim como o nosso sol.
Entradas
Um número inteiro heatno intervalo de 4 a 11, representando a quantidade de calor recebido pelo planeta da estrela.
Variáveis
Esta tabela mostra os possíveis planetas com base em heat. Seu método deve primeiro restringir as opções disponíveis com base no calor mínimo e no calor máximo, heatdeve cair sobre ou entre os dois. Por exemplo, com um calor de 10 passado, as únicas opções seriam Deserto, Ferro e 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
Em seguida, a probabilidade de um planeta (nas demais opções) ser escolhida são suas chances aleatórias divididas pela soma das chances aleatórias de todas as opções.
No exemplo acima, a probabilidade de ferro ser escolhido é 14/(25+14+6).
Saída
Retorne o tipo de planeta como uma string.
Faça o melhor que puder para evitar pontas de flechas lógicas. O código mais curto ganha, aponta para a criatividade. Feliz golfe!