Einführung
Schreiben Sie ein Programm oder eine Funktion, die anhand der Koordinaten, in denen ein Pfeil auf einer Dartscheibe landet, die Punktzahl dieses Pfeils zurückgibt. Dartkoordinaten werden als zwei Ganzzahlen angegeben, x,y
die von der Mitte der Dartscheibe aus millimetergenau gemessen werden.
Wie man einen Pfeil schießt
Dart ist ein Spiel, bei dem ein Pfeil auf ein kreisförmiges Brett geworfen wird. Die Dartscheibe ist in 20 gleich große "Wedges" unterteilt. Ausgehend von oben und im Uhrzeigersinn haben die Abschnitte Werte von 20,1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12 , 5. Wenn Ihr Pfeil in den schwarzen oder weißen Teilen eines der Keile landet, erhalten Sie den Wert, der auf der Außenseite dieses Keils angegeben ist.
.
Wenn Ihr Pfeil jedoch im äußeren grün / roten Ring der Dartscheibe landet, erhalten Sie doppelt so viele Punkte wie auf der Außenseite des von Ihnen getroffenen Keils angegeben. Wenn Sie auf den inneren grün / roten Ring (den Ring zwischen den beiden weiß / schwarzen Abschnitten) treffen, erhalten Sie die dreifache Punktzahl, die auf der Außenseite des Keils angegeben ist. Trifft Ihr Pfeil auf den innersten Kreis (das rote Bullauge), erhalten Sie stattdessen 50 Punkte. Trifft Ihr Pfeil auf den zweitinnersten Kreis (den grünen Ring um das Bullauge), erhalten Sie 25 Punkte.
Die Abmessungen der Ringe, gemessen von der Mitte der Dartscheibe, sind wie folgt:
Bullseye (50): [0mm-6mm)
25: [6mm-16mm)
Inner Single: [16mm-99mm)
Triple: [99mm-107mm)
Outer Single: [107mm-162mm)
Double: [162mm-170mm)
Miss (0): 170mm+
Hinweis 1: Die angegebenen Bilder dienen nur zu Illustrationszwecken und sind nicht maßstabsgetreu.
Hinweis 2: Die angegebenen Maße sind ungefähre Werte und können von einer echten Dartscheibe abweichen.
Anmerkung 3: Alle angegebenen Maße sind [inclusive-exclusive)
. Für die Zwecke dieser Herausforderung brauchen wir uns keine Sorgen zu machen, dass Pfeile den Draht treffen und abprallen. Wenn der Pfeil mit einer der radialen Linien "auf dem Draht" landet, muss der Antwortende entscheiden, ob die Verbindung im oder gegen den Uhrzeigersinn abgebrochen wird. Die Biegerichtung muss übereinstimmen und angegeben werden.
Anmerkung 4: Die Dartscheibe wird wie üblich aufgehängt, wobei die Mitte des Abschnitts 20 direkt über dem Bullseye und der Abschnitt 3 direkt unter dem Bullseye liegt.
Eingang
Zwei Ganzzahlen, die die x,y
Koordinaten der Landung des Pfeils in Millimetern relativ zur Mitte der Dartscheibe darstellen.
Ausgabe
Eine einzelne Ganzzahl für die Anzahl der Punkte, die für einen Pfeil vergeben werden, der an den angegebenen Koordinaten gelandet ist.
Probe
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
Wertung
Code-Golf . Die wenigsten Bytes in Ihrem Quellcode gewinnen.
-150,-1
und -150,0
die 11
bei einigen Implementierungen sowohl einen Randfall ergeben als auch möglicherweise einen Randfall darstellen, da dies der Übergang zwischen Theta-Konvergenz zu -pi und Theta = + pi in Polarkoordinaten ist. (Meine erste Antwort schlug am 2. fehl.)