Saya datang dengan tantangan ini secara mandiri, tetapi ternyata kebalikan dari tantangan ini oleh Doorknob . Karena saya sangat menyukai speknya, saya memutuskan untuk mencuri sebagian besar alih-alih memasak penjelasan saya sendiri.
Tantangan
Diberi singkatan dari salah satu dari 32 poin pada kompas, cetak derajat yang sesuai. Jangan ragu untuk langsung beralih ke tabel di bawah ini jika Anda tidak tertarik dengan penjelasan 32 poin.
Ini kompas lengkap:
Oleh Denelson83 (Pekerjaan sendiri) [ GFDL atau CC-BY-SA-3.0 ], melalui Wikimedia Commons
Setiap arah adalah 11,25 (360/32) derajat lebih jauh dari sebelumnya. Sebagai contoh, N (utara) adalah 0 derajat, NbE (utara oleh timur) adalah 11,25 derajat, NNE (utara-timur laut) adalah 22,5 derajat, dll.
Secara rinci, nama-nama tersebut ditetapkan sebagai berikut:
- 0 derajat adalah N, 90 derajat adalah E, 180 derajat adalah S, dan 270 derajat adalah W. Ini disebut arah mata angin.
- Titik setengah antara arah mata angin hanyalah arah mata angin mereka di antara disatukan. N atau S selalu menjadi yang pertama, dan W atau E selalu menjadi yang kedua. Ini disebut arahan ordinal. Arah ordinal dan kardinal bersama-sama membentuk angin utama.
- Titik tengah di antara angin utama adalah arah di antara keduanya. Arahan kardinal pergi dulu, ordinal kedua. Ini disebut setengah angin.
- Titik tengah antara angin utama dan setengah adalah angin utama yang berdekatan "dengan" arah mata angin terdekat dari angin utama. Ini dilambangkan dengan a
b
. Ini disebut seperempat angin.
Ini menghasilkan bagan berikut:
# Degrees Abbrv. Name
1 0 N North
2 11.25 NbE North by east
3 22.5 NNE North-northeast
4 33.75 NEbN Northeast by north
5 45 NE Northeast
6 56.25 NEbE Northeast by east
7 67.5 ENE East-northeast
8 78.75 EbN East by north
9 90 E East
10 101.25 EbS East by south
11 112.5 ESE East-southeast
12 123.75 SEbE Southeast by east
13 135 SE Southeast
14 146.25 SEbS Southeast by south
15 157.5 SSE South-southeast
16 168.75 SbE South by east
17 180 S South
18 191.25 SbW South by west
19 202.5 SSW South-southwest
20 213.75 SWbS Southwest by south
21 225 SW Southwest
22 236.25 SWbW Southwest by west
23 247.5 WSW West-southwest
24 258.75 WbS West by south
25 270 W West
26 281.25 WbN West by north
27 292.5 WNW West-northwest
28 303.75 NWbW Northwest by west
29 315 NW Northwest
30 326.25 NWbN Northwest by north
31 337.5 NNW North-northwest
32 348.75 NbW North by west
Tugas Anda adalah mengambil salah satu dari 32 singkatan dari kolom ketiga dan menampilkan derajat yang sesuai di kolom kedua.
Anda dapat mengasumsikan bahwa input akan selalu menjadi salah satu dari 32 string (dan Anda dapat secara opsional tetapi secara konsisten mengharapkan satu baris baru). Output juga harus diberikan persis seperti yang tercantum di atas, meskipun trailing nol diperbolehkan. Anda secara opsional dapat menampilkan satu baris baru.
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Ini kode golf, jadi jawaban tersingkat (dalam byte) menang.