Ich habe diese Herausforderung unabhängig erarbeitet, aber es stellt sich heraus, dass Doorknob die Umkehrung dieser Herausforderung darstellt . Da ich seine Spezifikation wirklich mag, habe ich beschlossen, große Teile davon zu stehlen, anstatt meine eigenen Erklärungen zu erfinden.
Die Herausforderung
Bei der Abkürzung eines der 32 Punkte auf dem Kompass die entsprechenden Grade ausdrucken. Wenn Sie keine Erklärung für die 32 Punkte wünschen, können Sie gerne zur folgenden Tabelle springen.
Hier ist der vollständige Kompass:
Von Denelson83 (Eigene Arbeit) [ GFDL oder CC-BY-SA-3.0 ] über Wikimedia Commons
Jede Richtung ist 11,25 (360/32) Grad weiter als die vorherige. Beispielsweise beträgt N (Nord) 0 Grad, NbE (Nord-Ost) 11,25 Grad, NNE (Nord-Nordost) 22,5 Grad usw.
Im Detail werden die Namen wie folgt vergeben:
- 0 Grad ist N, 90 Grad ist E, 180 Grad ist S und 270 Grad ist W. Diese werden als Himmelsrichtungen bezeichnet.
- Die halben Punkte zwischen den Himmelsrichtungen sind einfach die Himmelsrichtungen, zwischen denen sie verkettet sind. N oder S stehen immer an erster Stelle, und W oder E stehen immer an zweiter Stelle. Diese werden Ordnungsrichtungen genannt. Die Ordnungs- und Kardinalrichtungen bilden zusammen die Hauptwinde.
- Die halben Punkte zwischen den Hauptwinden sind die Richtungen, in die sie miteinander verbunden sind. Kardinalrichtungen gehen zuerst, Ordinalsekunde. Diese werden Halbwinde genannt.
- Die Zwischenpunkte zwischen Haupt- und Halbwind sind der benachbarte Hauptwind "nach" der dem Hauptwind am nächsten liegenden Himmelsrichtung. Dies ist mit a bezeichnet
b
. Diese werden Viertelwinde genannt.
Daraus ergibt sich folgende Grafik:
# 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
Ihre Aufgabe ist es, eine der 32 Abkürzungen aus der dritten Spalte als Eingabe zu übernehmen und die entsprechenden Grade in der zweiten Spalte auszugeben.
Sie können davon ausgehen, dass die Eingabe immer genau eine dieser 32 Zeichenfolgen ist (und Sie können optional, aber konsistent, eine einzelne nachgestellte Newline erwarten). Die Ausgabe sollte ebenfalls genau wie oben angegeben erfolgen, obwohl nachgestellte Nullen zulässig sind. Optional können Sie eine einzelne nachgestellte Newline ausgeben.
Sie können ein Programm oder eine Funktion schreiben, indem Sie eine Eingabe über STDIN (oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis über STDOUT (oder die nächstgelegene Alternative), einen Funktionsrückgabewert oder einen Funktionsparameter (out) ausgeben.
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).