Arrr ... Ahoy là, moi les copains! Dérouler la grand-voile! Plein à tribord! Ah, sens le vent dans tes cheveux!
Bon, mon coeur ... J'ai besoin d'un peu de compétences en codage! Mon équipage est un peu plus modernisé que moi-même ... Je préfère toujours les "points de la boussole" (voir ici pour plus d'informations, Arrr ...) tandis que mon équipage est toujours en train d'utiliser une tête. Je veux un moyen facile de convertir ce twaddle qu'ils appellent un headin en ce que je peux comprendre, Arrr!
Ce dont j'ai besoin, c'est d'un code qui prenne l'entrée d'un nombre (les décimales sont correctes) tel que ' 0 <= the headin' < 360
et ça crache la réponse comme le point de boussole le plus proche! Arrr!
Voici quelques exemples:
> heading 0.1
North
> heading 11.25
North by East
> heading 22.7
North Northeast
> heading 44.99
Northeast
> heading 91
East
Maintenant, si vous êtes en train de donner de telle sorte qu'il tombe exactement au milieu de deux points cardinaux, ne vous inquiétez pas, mon cœur ... j'attends que le code crache Between <point 1> and <point 2>
, par exemple heading 5.625
dira que Between North and North by East
cela ne se produit que pour une tête qui doit satisfaire l'équation H = 5.625 + 11.25(N)
où H est la tête et N un entier compris entre 0 et 31 inclus ...
Deux restrictions ...
1) Je ne veux pas que vous utilisiez des tableaux pour stocker vos données pour les points ou les `` headin's '' ... t 'être calculé, jus' comme au bon vieux temps! Arrr!
2) Le code le plus court l'emporte, ou je vous fais marcher la planche ... Arrr!
'
(Apostrophe) en une seule question. Chapeau! : DRéponses:
Perl 5,10 en utilisant une substitution,
231228226224Ajout de quatre nouvelles lignes pour plus de lisibilité.
Edit: Golfed 2 octets de plus en utilisant
pop
. Merci @Dom HastingsModifier: 2 octets de moins en utilisant
qw()
la source
Je passe trop de temps sur cette chasse au trésor ici, mais voici une solution en Java :
modifier Si je minimise le code ci-dessus et le rend vraiment laid, il deviendrait ceci:
Java, 770 caractères
la source
aaarrrgs
Arrays.asList
commande, pardonnez-moi ici pour mon ignorance Java, mais n'est-ce pas en utilisant un tableau de stockage? Ou s'agit-il d'une manière sournoise d'introduire le tableau sous la forme d'une liste? ;)switch
instruction à la place (avec quelques caractères supplémentaires, malheureusement). Oh et version condensée du même code ajoutée. Je vais penser à le réduire davantage en changeant réellement la façon dont cela fonctionne.Python, 264
Cela utilise la capitalisation selon la page wikipedia et devrait fonctionner pour n'importe quel nombre.
la source
Arrr Python, 336
Merci @Jeen
la source
Perl 5.10,
262257254Un peu similaire à l'une des solutions Python:
Ajout de quatre nouvelles lignes pour plus de lisibilité.
Edit: trois octets de moins grâce à @Dom Hastings
la source
;
à la fin desub p
et basculershift
verspop
.