pengantar
Tulis program atau fungsi yang, dengan koordinat di mana anak panah mendarat di papan panah, kembalikan skor anak panah itu. Koordinat x,y
dart diberikan sebagai dua bilangan bulat, diukur dari pusat papan dart, dengan presisi milimeter.
Cara mencetak anak panah
Darts adalah permainan yang dimainkan dengan melemparkan anak panah ke papan bundar. Papan panah dibagi menjadi 20 "wedges" berukuran sama. Mulai dari atas dan searah jarum jam, bagian memiliki nilai 20.1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12 , 5. Jika anak panah Anda mendarat di bagian hitam atau putih dari salah satu irisan, Anda mencetak nilai yang ditunjukkan di luar irisan itu.
.
Namun, jika panah Anda mendarat di cincin hijau / merah luar papan panah, Anda mencetak dua kali lipat poin yang ditunjukkan di luar irisan yang Anda pukul. Demikian juga, dengan memukul cincin hijau / merah bagian dalam (yang ada di antara dua bagian putih / hitam), Anda mencetak tiga kali lipat dari angka yang ditunjukkan di bagian luar irisan. Jika panah Anda mengenai lingkaran paling dalam (mata merah), Anda mencetak skor 50 poin dan akhirnya, jika panah Anda menyentuh lingkaran kedua yang paling dalam (cincin hijau di sekitar mata sapi), Anda mencetak 25 poin.
Dimensi cincin, diukur dari pusat papan dart, adalah sebagai berikut:
Bullseye (50): [0mm-6mm)
25: [6mm-16mm)
Inner Single: [16mm-99mm)
Triple: [99mm-107mm)
Outer Single: [107mm-162mm)
Double: [162mm-170mm)
Miss (0): 170mm+
Catatan 1: Gambar yang disediakan hanya untuk tujuan ilustrasi, dan tidak untuk skala.
Catatan 2: Pengukuran yang diberikan merupakan perkiraan, dan mungkin tidak akurat untuk papan dart nyata.
Catatan 3: Semua pengukuran yang diberikan adalah [inclusive-exclusive)
. Untuk keperluan tantangan ini, kita tidak akan khawatir tentang panah yang mengenai kawat dan memantul. Jika anak panah mendarat "di kawat" dengan salah satu garis radial, maka tergantung pada penjawab untuk memutuskan apakah akan memutuskan ikatan searah jarum jam atau berlawanan arah jarum jam. Arah pemutusan ikatan harus konsisten, dan ditunjukkan.
Catatan 4: Papan Dart digantung dengan cara standar dengan bagian tengah 20 berada tepat di atas bullseye, dan 3 bagian langsung di bawah bullseye.
Memasukkan
Dua bilangan bulat yang mewakili x,y
koordinat tempat anak panah mendarat, diukur dalam milimeter, relatif terhadap bagian tengah papan panah.
Keluaran
Bilangan bulat tunggal, untuk jumlah poin yang akan diberikan kepada anak panah yang mendarat di koordinat yang diberikan.
Mencicipi
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
Mencetak gol
kode-golf . Byte paling sedikit dalam kode sumber Anda menang.
-150,-1
dan -150,0
yang harus memberi 11
dan mungkin merupakan kasus tepi pada beberapa implementasi, karena ini adalah transisi antara theta konvergen ke -pi dan theta = + pi dalam koordinat polar. (Jawaban awal saya gagal pada jawaban ke-2.)