giriş
Bu, son zamanlarda bir bilgisayar oyunu yaparken karşılaştığım gerçek bir soruna dayanıyor ve bunun güzel bir kod-golf turu olacağını düşünmüştüm .
Değişken miktarlarda ısı veren yedi ana spektral yıldız sınıfı vardır . Yıldızların etrafındaki gezegenlerin jeolojisi, yıldızdan alınan ısı miktarından büyük ölçüde etkilenir; bu, spektral sınıf ve yıldızdan uzaklık faktörüdür. Bu nedenle Merkür pratik olarak eritilir, Neptün donmuş.
Oyunumdaki galaksi usule göre üretildi ve verilen yıldızlar için gezegen tiplerini rastgele seçerek gerçek bir 'cehennem if' ifadesi ortaya çıktı!
Meydan okuma
Metodunuz, minimum ısı eşiğine, maksimum ısı eşiğine ve rastgele bir sayıya dayanarak yıldız sınıfına uygun gezegen tipleri listesinden bir gezegen seçmelidir. Basit olması için bu meydan okuma, güneşimiz gibi, sadece G sınıfı bir yıldız kullanır.
Girdiler
heat
Gezegenin yıldızdan aldığı ısı miktarını temsil eden 4 ila 11 aralığında bir tam sayı .
Değişkenler
Bu tablo dayalı olası gezegenleri gösterir heat
. Metodunuz ilk önce ısı min ve ısı max bazında mevcut seçenekleri daraltmalı heat
, ikisi arasına veya arasına düşmelidir. Örneğin, 10 sıcağa sahip tek seçenek, Çöl, Demir ve Lav olabilir.
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
Daha sonra, bir gezegenin (kalan seçeneklerde) seçilme olasılığı, tüm seçimlerin rastgele şanslarının toplamına bölünmesiyle elde edilen rastgele şanslarıdır.
Yukarıdaki örnekte, Demir'in seçilme olasılığı vardır 14/(25+14+6)
.
Çıktı
Gezegen türünü bir dize olarak döndür.
Mantık ok uçlarını önlemek için elinizden geleni yapın. En kısa kod kazanır, yaratıcılık için her yönüyle işaret eder. Mutlu golf!