Nakit sıkıntısı çekerek, dünyanın en büyük dijital donut şirketi olan Donut Shop ™ için çörek yapmak için kaydoldunuz, çünkü bunlar akla gelebilecek her tür donut satıyorlar.
Günümüzde ticaret standartlarının çok zor olduğu göz önüne alındığında, bu donutları oluşturmak için mümkün olduğunca kısa bir kod parçası yazmanız gerekir, böylece onları oluşturan kaynak kodu paketin dışına konabilir.
Meydan okuma
4 giriş, dış halkanın yarıçapı, iç halkanın yarıçapı, olası sprinkler ve bir hücrenin serpme şansı göz önüne alındığında, doğru iç ve dış yarıçaplara sahip olan serpintilerle kaplı bir çörek çıkarır.
- Giriş istediğiniz şekilde (bir işleve, stdin'e, program bağımsız değişkenlerine) ve herhangi bir sırayla alınabilir.
- Sprinkles, sprinkle tipi başına 1 karakter şeklinde verilecektir
^+*-
serpin girişi 4 fog listesi olacağı gibi,^
,+
,*
,-
- Bir tutam şansı 0 ile 1 örn arasında bir kayan nokta değeri olarak girilecektir:
0.1
,0.23
- Çıkışı stdout veya eşdeğerine yazdırmanız gerekir.
- Sprinkler çöreklerin kenarlarında olamaz.
- Her bir serpme tipinin, her bir hücrede olma olasılığı aynı olmalıdır.
- Yarıçaplar 1 hücreli birimlerde verilmiştir.
- İç yarıçap 0 VEYA dış yarıçapa eşitse, çörekte halka olmadığı söylenir.
- Her iki yarıçap da negatif olmayan tamsayılar olacaktır.
- Çörek iç ve dış kenarları karma (
#
) kullanılarak temsil edilmelidir Yarıçap ve dairenin merkezi göz önüne alındığında, bir noktanın bir daire içinde olup olmadığını görmek için bir test:
(x-center)**2+(y-center)**2 < radius**2
Çıktı ile örnek giriş
(dış yarıçap, iç yarıçap, serpme, serpme şansı)
10, 4, "^ + * -", 0.1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5, 2, ": ^ + *", 0.9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Bu kod golf, bayttaki en kısa cevap kazanıyor
10, 4
ve 5, 2
oldukça farklıdır. Cevap üzerine bir yorum bırakacaktım, ancak çıktının örneklerdeki boyutlar dışında herhangi bir boyut için nasıl görünmesi gerektiğini gerçekten anlamadığımı fark ettim. Orijinal fikrinizi cevaptan elde edilen çıktıyla eşleştirmek istiyorsanız, bu size bağlıdır, ancak zorluk sınırların her iki şekilde nasıl çizileceğini açıkça tanımlamalıdır.