Не вистачаючи грошей, ви підписалися на створення пончиків для The Donut Shop ™, найбільшої в світі цифрової пончикової компанії, головним чином тому, що вони продають будь-який розмір пончика, який можна уявити.
Тепер, враховуючи, що стандарти торгівлі на сьогоднішній день дуже жорсткі, потрібно створити фрагмент коду якомога коротше, щоб створити ці пончики, щоб вихідний код, який їх створив, міг бути розміщений на зовнішній стороні пакету.
Виклик
З урахуванням 4 входів, радіуса зовнішнього кільця, радіуса внутрішнього кільця, можливих бризок і шансу осередку посипати, вивести пончик, накритий цими насадками, який має правильний внутрішній і зовнішній радіуси.
- Вхід може бути сприйнятий за вашим бажанням (аргументи функції, stdin, аргументи програми) та в будь-якому порядку.
- Бризки подаватимуться у вигляді 1 символу на тип посипання
^+*-
в якості вхідних даних посипте буде список з 4 -х обприскувань,^
,+
,*
,-
- Імовірність обприскування буде введена в якості значення з плаваючою точкою між 0 і 1. Наприклад:
0.1
,0.23
- Ви повинні роздрукувати вихід у stdout або еквівалент.
- Бризки не можуть бути по краях пончика.
- Кожен тип посипання повинен мати однаково ймовірний шанс опинитися на кожній клітині.
- Радіуси наведені в 1-елементних одиницях.
- Якщо внутрішній радіус дорівнює або АБО зовнішній радіус, як кажуть, у пончика немає кільця.
- Обидва радіуси будуть невід’ємними цілими числами.
- Внутрішні та зовнішні краї пончика повинні бути представлені хешами (
#
) Тест на предмет того, чи є точка у колі, заданий радіус, а центр кола:
(x-center)**2+(y-center)**2 < radius**2
Приклад введення з виходом
(зовнішній радіус, внутрішній радіус, посипання, можливість посипання)
10, 4, "^ + * -", 0,1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5, 2, ": ^ + *", 0,9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Це кодовий гольф, найкоротша відповідь у байтах виграє
10, 4
і 5, 2
дуже різні. Я збирався залишити коментар до відповіді, але зрозумів, що я не дуже розумію, як повинен виглядати вихід для будь-яких вимірів, окрім прикладів. Якщо ви хочете, щоб ваша оригінальна ідея відповідала результатам відповіді, це залежить від вас, але завдання повинно чітко визначати, як намалювати межі в будь-якому випадку.