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 heat
no 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, heat
deve 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!