Bu meydan okumayı bağımsız olarak buldum, ancak Doorknob'un bu meydan okumasının tersi olduğu ortaya çıktı . Spesifikasyonunu gerçekten sevdiğim gibi, kendi açıklamalarımı pişirmek yerine büyük parçalarını çalmaya karar verdim.
Meydan okuma
Pusuladaki 32 noktadan birinin kısaltması göz önüne alındığında, ilgili dereceleri yazdırın. 32 noktanın açıklamasıyla ilgilenmiyorsanız, aşağıdaki tabloya geçmekten çekinmeyin.
İşte tam pusula:
Denelson83 (Kendi çalışması) [ GFDL veya CC-BY-SA-3.0 ], Wikimedia Commons aracılığıyla
Her yön öncekinden 11,25 (360/32) derecedir. Örneğin, N (kuzey) 0 derece, NbE (kuzey doğu) 11.25 derece, NNE (kuzey-kuzeydoğu) 22.5 derecedir, vb.
Ayrıntılı olarak, adlar aşağıdaki gibi atanır:
- 0 derece N, 90 derece E, 180 derece S ve 270 derece W'dir. Bunlara kardinal yönler denir.
- Kardinal yönler arasındaki yarı noktalar basitçe birleştirilmiş arasındaki kardinal yönlerdir. N veya S her zaman önce gelir ve W veya E her zaman ikinci olur. Bunlara sıralı yönler denir. Ordinal ve kardinal yönler birlikte ana rüzgarları oluşturur.
- Ana rüzgarlar arasındaki yarım noktalar, birleştirilmiş arasındaki yönlerdir. Önce kardinal yönler, ikinci sırada. Bunlara yarım rüzgar denir.
- Ana rüzgarlar ile yarı rüzgarlar arasındaki yarım noktalar, ana rüzgardan en yakın kardinal yön "ile" bitişik ana rüzgardır. Bu bir ile gösterilir
b
. Bunlara çeyrek rüzgar denir.
Bu, aşağıdaki grafikle sonuçlanır:
# 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
İşte daha ayrıntılı bir grafik ve pusulanın noktalarının muhtemelen daha iyi açıklaması.
Göreviniz, üçüncü sütundaki 32 kısaltmadan birini girmek ve ikinci sütundaki ilgili dereceleri çıkarmaktır.
Girdinin her zaman bu 32 dizeden biri olacağını varsayabilirsiniz (ve isteğe bağlı olarak ancak tutarlı bir şekilde tek bir son satır bekleyebilirsiniz). Ayrıca, sıfıra sıfıra izin verilse de, çıktı tam olarak yukarıda listelenen şekilde verilmelidir. İsteğe bağlı olarak tek bir satırsonu çıktısı alabilirsiniz.
STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alarak ve sonucu STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı alarak bir program veya işlev yazabilirsiniz.
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.