J'ai trouvé ce défi indépendamment, mais il s'avère être l'inverse de ce défi de Doorknob . Comme j'aime vraiment ses spécifications, j'ai décidé d'en voler de grandes parties au lieu de préparer mes propres explications.
Le défi
Étant donné l'abréviation de l'un des 32 points de la boussole, imprimez les degrés correspondants. N'hésitez pas à passer au tableau ci-dessous si vous n'êtes pas intéressé par une explication des 32 points.
Voici la boussole complète:
Par Denelson83 (Travail personnel) [ GFDL ou CC-BY-SA-3.0 ], via Wikimedia Commons
Chaque direction est plus éloignée de 11,25 (360/32) que la précédente. Par exemple, N (nord) est de 0 degré, NbE (nord par est) est de 11,25 degrés, NNE (nord-nord-est) est de 22,5 degrés, etc.
En détail, les noms sont attribués comme suit:
- 0 degré est N, 90 degrés E, 180 degrés S et 270 degrés W. Ces valeurs sont appelées directions cardinales.
- Les points à mi-chemin entre les directions cardinales sont simplement les directions cardinales entre lesquelles ils sont concaténés. N ou S vont toujours en premier et W ou E sont toujours en deuxième position. Celles-ci sont appelées directions ordinales. Les directions ordinales et cardinales forment ensemble les vents principaux.
- Les points à mi-chemin entre les vents principaux sont les directions entre lesquelles ils sont concaténés. Les directions cardinales vont en premier, les secondes ordinales. C'est ce qu'on appelle des demi-vents.
- Les points à mi-chemin entre les vents principaux et les demi-vents sont le vent principal adjacent "par" la direction cardinale la plus proche du vent principal. Ceci est indiqué par un
b
. Ce sont les quarts de vents.
Il en résulte le graphique suivant:
# 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
Voici un tableau plus détaillé et éventuellement une meilleure explication des points cardinaux.
Votre tâche consiste à prendre en entrée l'une des 32 abréviations de la troisième colonne et à afficher les degrés correspondants dans la deuxième colonne.
Vous pouvez supposer que l'entrée sera toujours exactement l'une de ces 32 chaînes (et vous pouvez éventuellement mais systématiquement vous attendre à une seule nouvelle ligne de fin). La sortie doit également être donnée exactement comme indiqué ci-dessus, bien que les zéros de fin soient autorisés. Vous pouvez éventuellement générer une seule nouvelle ligne de fin.
Vous pouvez écrire un programme ou une fonction, en prenant une entrée via STDIN (ou l'alternative la plus proche), un argument de ligne de commande ou un argument de fonction et en sortant le résultat via STDOUT (ou l'alternative la plus proche), la valeur de retour de la fonction ou le paramètre de la fonction (out).
Il s'agit du code golf, donc la réponse la plus courte (en octets) l'emporte.