Intro
Questo si basa su un problema reale che ho riscontrato di recente durante la realizzazione di un gioco per computer e ho pensato che sarebbe stato un bel giro di code-golf .
Esistono sette principali classi spettrali di stelle che emettono quantità variabili di calore. La geologia dei pianeti attorno a una stella è fortemente influenzata dalla quantità di calore ricevuto dalla stella, che è un fattore di classe spettrale e distanza dalla stella. Quindi il mercurio è praticamente fuso, congelato Nettuno.
La galassia nel mio gioco è generata proceduralmente e la selezione casuale dei tipi di pianeta per determinate stelle si è rivelata un vero e proprio "inferno di dichiarazione"!
La sfida
Il tuo metodo dovrebbe selezionare un pianeta da un elenco di tipi di pianeta appropriati per la classe di stelle, in base a una soglia minima di calore, una soglia massima di calore e un numero casuale. Per semplicità questa sfida utilizzerà solo una stella di classe G, proprio come il nostro sole.
ingressi
Un numero intero heat
compreso tra 4 e 11 che rappresenta la quantità di calore ricevuta dal pianeta dalla stella.
variabili
Questa tabella mostra i possibili pianeti basati su heat
. Il tuo metodo dovrebbe prima restringere le scelte disponibili in base al minimo di riscaldamento e al massimo di calore, heat
dovrebbe cadere su o tra i due. Ad esempio, con un calore di 10 passati nelle uniche scelte sarebbero Desert, Iron 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
Successivamente, la probabilità che un pianeta (nelle restanti scelte) venga scelto sono le sue possibilità casuali divise per la somma delle probabilità casuali di tutte le scelte.
Nell'esempio sopra, la probabilità di scegliere il ferro è 14/(25+14+6)
.
Produzione
Restituisce il tipo di pianeta come stringa.
Fai del tuo meglio per evitare punte di freccia logiche. Il codice più corto vince, punti a tutto tondo per la creatività. Buon golf!