Introducción
Escriba un programa o función que, dadas las coordenadas de dónde cae un dardo en un tablero de dardos, devuelva el puntaje de ese dardo. Las coordenadas de dardo se dan como dos enteros, x,y
medidos desde el centro del tablero de dardos, con precisión milimétrica.
Cómo anotar un dardo
Darts es un juego que se juega lanzando un dardo a un tablero circular. El tablero de dardos se divide en 20 "cuñas" de igual tamaño. Comenzando desde arriba y en sentido horario, las secciones tienen valores de 20,1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12 5. Si su dardo cae en las partes negras o blancas de cualquiera de las cuñas, obtiene el valor indicado en el exterior de esa cuña.
.
Sin embargo, si su dardo cae en el anillo exterior verde / rojo del tablero de dardos, obtiene el doble de puntos indicados en el exterior de la cuña que golpeó. Del mismo modo, golpeando el anillo verde / rojo interior (el que está entre las dos secciones blancas / negras), obtienes el triple del número indicado en el exterior de la cuña. Si su dardo golpea el círculo más interno (la diana roja), en su lugar obtiene 50 puntos y, finalmente, si su dardo golpea el segundo círculo más interno (el anillo verde alrededor de la diana), obtiene 25 puntos.
Las dimensiones de los anillos, medidas desde el centro del tablero de dardos, son las siguientes:
Bullseye (50): [0mm-6mm)
25: [6mm-16mm)
Inner Single: [16mm-99mm)
Triple: [99mm-107mm)
Outer Single: [107mm-162mm)
Double: [162mm-170mm)
Miss (0): 170mm+
Nota 1: Las imágenes proporcionadas son solo para fines ilustrativos y no están a escala.
Nota 2: Las medidas proporcionadas son aproximadas y pueden no ser precisas para un tablero de dardos real.
Nota 3: Todas las medidas dadas son [inclusive-exclusive)
. Para los propósitos de este desafío, no nos vamos a preocupar de que los dardos golpeen el cable y reboten. Si el dardo cae "en el cable" con una de las líneas radiales, entonces corresponde al respondedor decidir si romper el lazo en el sentido de las agujas del reloj o en sentido contrario. La dirección de desempate debe ser consistente e indicada.
Nota 4: el tablero de dardos se cuelga de la manera estándar con la mitad de la sección 20 directamente encima de la diana y la sección 3 directamente debajo de la diana.
Entrada
Dos enteros que representan el x,y
coordenadas del lugar donde cayó el dardo, medido en milímetros, en relación con el centro del tablero de dardos.
Salida
Un número entero, para el número de puntos que se otorgarían a un dardo que aterrizó en las coordenadas dadas.
Muestra
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
Tanteo
código-golf . Pocos bytes en su código fuente gana.
-150,-1
y -150,0
que deberían dar 11
y pueden ser un caso límite en algunas implementaciones, ya que esta es la transición entre theta que converge a -pi y theta = + pi en coordenadas polares. (Mi respuesta inicial falló en la segunda.)