Введение
Напишите программу или функцию, которая, учитывая координаты того, где дротик приземляется на мишени, возвращает результат этого дротика. Координаты дротика даны в виде двух целых чисел, x,y
измеренных от центра мишени с точностью до миллиметра.
Как забить дротик
Дартс - игра, в которую играют в метание дротика на круглой доске. Дротик разделен на 20 одинаковых по размеру «клиньев». Начиная сверху и по часовой стрелке, секции имеют значения 20,1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12 , 5. Если ваш дротик приземляется в черных или белых частях любого из клиньев, вы получаете значение, указанное на внешней стороне этого клина.
,
Однако, если ваш дротик приземляется во внешнее зеленое / красное кольцо дартс, вы удваиваете очки, указанные на внешней стороне клина, в который вы попали. Аналогично, ударяя по внутреннему зеленому / красному кольцу (то, которое находится между двумя белыми / черными секциями), вы получаете тройное число, указанное на внешней стороне клина. Если ваш дротик попадает в самый внутренний круг (красный бычий глаз), вы вместо этого набираете 50 очков и, наконец, если ваш дротик попадает во второй самый внутренний круг (зеленое кольцо вокруг бычьего глаза), вы получаете 25 очков.
Размеры колец, измеренные от центра мишени, следующие:
Bullseye (50): [0mm-6mm)
25: [6mm-16mm)
Inner Single: [16mm-99mm)
Triple: [99mm-107mm)
Outer Single: [107mm-162mm)
Double: [162mm-170mm)
Miss (0): 170mm+
Примечание 1: Изображения предоставлены только для иллюстрации и не в масштабе.
Примечание 2: Данные измерения являются приблизительными и могут быть неточными для реального дартс.
Примечание 3: Все измерения даны [inclusive-exclusive)
. В рамках этой задачи мы не будем беспокоиться о том, что дротики могут ударить по проволоке и отскочить. Если дротик приземляется «на проволоке» с одной из радиальных линий, то ответчик должен решить, сломать ли галстук по часовой стрелке или против часовой стрелки. Направление обрыва связи должно быть последовательным и указанным.
Примечание 4: Дартс подвешен стандартным способом, середина 20-й секции находится прямо над яблочком, а 3-я секция - прямо под яблочком.
вход
Два целых числа, представляющие x,y
координаты места приземления дротика, измеренные в миллиметрах, относительно центра дротика.
Выход
Одно целое число для количества очков, которое будет присуждено дротику, который приземлился в заданных координатах.
Образец
0,0 -> 50
2,101 -> 60
-163,-1 -> 22
6,18 -> 1
-6,18 -> 5
45,-169 -> 0
22, 22 -> 4 (if tie-broken clock-wise)
18(if tie-broken counter-clockwise)
-150,0 -> 11
-150,-1 -> 11
счет
код-гольф . Побеждает меньшее количество байтов в вашем исходном коде.
-150,-1
и -150,0
которые должны давать 11
и могут быть крайним случаем в некоторых реализациях, так как это переход между тета, сходящимся к -pi, и тета = + pi в полярных координатах. (Мой первоначальный ответ не состоялся 2-го.)