вступление
Это основано на реальной проблеме, с которой я недавно столкнулся, создавая компьютерную игру, и я подумал, что это принесет хороший раунд игры в гольф .
Существует семь основных спектральных классов звезд, которые выделяют различное количество тепла. На геологию планет вокруг звезды большое влияние оказывает количество тепла, получаемого от звезды, которое является фактором спектрального класса и расстояния от звезды. Следовательно, Меркурий практически расплавлен, Нептун заморожен.
Галактика в моей игре сгенерирована процедурно, и случайный выбор типов планет для данных звезд оказался настоящим «заявлением ада»!
Соревнование
Ваш метод должен выбрать одну планету из списка типов планет, соответствующих классу звезды, на основе минимального теплового порога, максимального теплового порога и случайного числа. Для простоты эта задача будет использовать только звезду класса G, как наше Солнце.
входные
Целое число heat
в диапазоне от 4 до 11, представляющее количество тепла, получаемого планетой от звезды.
переменные
Эта таблица показывает возможные планеты на основе heat
. Ваш метод должен сначала сузить доступные варианты выбора, исходя из минимума нагрева и максимума нагрева, которые heat
должны приходиться на или между ними. Например, с теплом 10, переданным в единственном выборе будут Пустыня, Железо и Лава.
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
Далее, вероятность выбора планеты (в оставшихся вариантах) - это ее случайные шансы, деленные на сумму случайных шансов всех вариантов.
В приведенном выше примере вероятность выбора железа равна 14/(25+14+6)
.
Выход
Вернуть тип планеты в виде строки.
Делайте все возможное, чтобы избежать логических стрелок. Самый короткий код побеждает, очки за творческий подход. Удачного игры в гольф!