Arrr ... Ahoi da, ich maties! Lass das Großsegel los! Voll an Steuerbord! Ah, fühl den Wind in deinen Haaren!
Richtig, ich Herzchen ... Ich brauche ein bisschen von deinen Fähigkeiten als Programmierer! Meine Crew ist ein bisschen moderner als ich selbst ... Ich bevorzuge immer noch die Himmelsrichtungen (siehe hier für weitere Informationen, Arrr ...), während meine Crew immer einen Headin verwendet. Ich möchte diesen Trottel auf einfache Weise in das umwandeln, was ich verstehen kann, Arrr!
Was ich brauche, ist Code, der eine Zahl 0 <= the headin' < 360
eingibt (Dezimalstellen sind in Ordnung), und die Antwort wird als der nächstgelegene Kompasspunkt ausgegeben! Arrr!
Hier einige Beispiele:
> heading 0.1
North
> heading 11.25
North by East
> heading 22.7
North Northeast
> heading 44.99
Northeast
> heading 91
East
Nun, wenn Sie so weit gehen, dass es genau in die Mitte von zwei Kompasspunkten fällt, ärgern Sie sich nicht, ich Herzliche ... Ich erwarte, dass der Code ausspuckt Between <point 1> and <point 2>
zB heading 5.625
wird sagen Between North and North by East
Diese happenin nur sein für eine Headin Tha ‚sein satisfyin' der Gleichung H = 5.625 + 11.25(N)
wobei H sein th‘ Headin und N eine ganze Zahl zwischen 0 und einschließlich 31 ist ...
Zwei Einschränkungen, die ...
1) Ich möchte nicht, dass Sie Arrays verwenden, um Ihre Daten für die Punkte oder den Kopf zu speichern. Das ist Betrug, Sir, und Sie wollen einen Vorgeschmack auf mich bekommen t 'berechnet werden, jus' wie die alten Tage! Arrr!
2) Der kürzeste Code gewinnt, oder ich mache dich fertig ... Arrr!
'
(Apostroph) in einer einzigen Frage. Hut ab! : DAntworten:
Perl 5.10 mit Substitution,
231228226224Zur besseren Lesbarkeit wurden vier neue Zeilen hinzugefügt.
Bearbeiten: Golfed 2 weitere Bytes mit
pop
. Vielen Dank an Dom HastingsBearbeiten: 2 Bytes weniger mit
qw()
quelle
Ich verbringe viel zu viel Zeit mit dieser Schatzsuche, aber hier ist eine Lösung in Java :
bearbeiten Wenn ich den obigen Code minimieren und machen es wirklich hässlich es dies werden würde:
Java, 770 Zeichen
quelle
aaarrrgs
Arrays.asList
Befehl verwenden, entschuldigen Sie mich hier für meine Java-Unkenntnis, aber ist das nicht die Verwendung eines Speicherarrays? Oder ist dies eine hinterhältige Art, das Array in Form einer Liste einzuführen? ;)switch
stattdessen eine Anweisung verwendet wird (leider mit ein paar zusätzlichen Zeichen). Oh und komprimierte Version des gleichen Codes hinzugefügt. Ich werde darüber nachdenken, es weiter herunterzufahren, indem ich tatsächlich ändere, wie es funktioniert.Python, 264
Dies verwendet die Großschreibung gemäß der Wikipedia-Seite und sollte für jede Zahl funktionieren.
quelle
Arrr Python, 336
Vielen Dank @Jeen
quelle
Perl 5.10,
262257254Etwas ähnlich zu einer der Python-Lösungen:
Zur besseren Lesbarkeit wurden vier neue Zeilen hinzugefügt.
Edit: Drei Bytes weniger dank @Dom Hastings
quelle
;
am Endesub p
und Schaltershift
aufpop
.