Intro
Dies basiert auf einem tatsächlichen Problem, mit dem ich vor kurzem bei der Erstellung eines Computerspiels konfrontiert war, und ich dachte, es würde zu einer schönen Runde Code-Golf führen .
Es gibt sieben spektrale Hauptklassen von Sternen, die unterschiedliche Wärmemengen abgeben. Die Geologie der Planeten um einen Stern wird in hohem Maße von der vom Stern empfangenen Wärmemenge beeinflusst, die ein Faktor für die Spektralklasse und die Entfernung zum Stern ist. Daher ist Quecksilber praktisch geschmolzen, Neptun gefroren.
Die Galaxie in meinem Spiel wird prozedural generiert und die zufällige Auswahl von Planetentypen für bestimmte Sterne hat sich als echte "Wenn-Aussage-Hölle" herausgestellt!
Die Herausforderung
Ihre Methode sollte einen Planeten aus einer Liste von Planetentypen auswählen, die für die Klasse der Sterne geeignet sind, basierend auf einer minimalen Wärmeschwelle, einer maximalen Wärmeschwelle und einer Zufallszahl. Der Einfachheit halber wird für diese Herausforderung nur ein Stern der Klasse G verwendet, genau wie unsere Sonne.
Eingänge
Eine ganze Zahl heat
im Bereich von 4 bis 11, die die Wärmemenge darstellt, die der Planet vom Stern empfängt.
Variablen
Diese Tabelle zeigt die möglichen Planeten basierend auf heat
. Ihre Methode sollte zuerst die verfügbaren Auswahlmöglichkeiten auf der Grundlage der Wärme min und Wärme max einschränken, heat
sollte auf oder zwischen den beiden liegen. ZB mit einem Durchgang von 10 wären Wüste, Eisen und Lava die einzigen Möglichkeiten.
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
Als nächstes ist die Wahrscheinlichkeit, dass ein Planet (in den verbleibenden Auswahlmöglichkeiten) ausgewählt wird, seine zufälligen Chancen, geteilt durch die Summe der zufälligen Chancen aller Auswahlmöglichkeiten.
Im obigen Beispiel ist die Wahrscheinlichkeit, dass Eisen gewählt wird 14/(25+14+6)
,.
Ausgabe
Geben Sie den Planetentyp als String zurück.
Geben Sie Ihr Bestes, um logische Pfeilspitzen zu vermeiden. Kürzester Code gewinnt, rundum Punkte für Kreativität. Viel Spaß beim Golfen!