Arrr ... Ahoj, ja mam nadzieję! Rozwinąć grot! Pełna na prawą burtę! Ach, poczuj wiatr we włosach!
Racja, moje serca ... Potrzebuję trochę twoich umiejętności kodowania! Moja załoga jest bardziej zmodernizowana niż ja ... Nadal wolę punkty kompasu (patrz tutaj, aby uzyskać więcej informacji, Arrr ...), podczas gdy moja załoga zawsze używa głowy Chcę być łatwym sposobem na przekształcenie tego twaddle'a, którego nazywają główką w to, co potrafię zrozumieć, Arrr!
Potrzebuję kodu, który „pobiera” dane liczbowe (dziesiętne są w porządku), takie jak „ 0 <= the headin' < 360
i wypowiada odpowiedź jako najbliższy punkt kompasu! Arrr!
Oto kilka przykładów:
> heading 0.1
North
> heading 11.25
North by East
> heading 22.7
North Northeast
> heading 44.99
Northeast
> heading 91
East
Otóż, jeśli będziesz tak dawać, że spadnie dokładnie na środek dwóch punktów kompasu, nie martw się, moje serca ... Oczekuję, że kod wypluje Between <point 1> and <point 2>
, np. heading 5.625
powie: Between North and North by East
To się dzieje tylko wtedy, gdy zmierzasz do spełnienia równania, w H = 5.625 + 11.25(N)
którym H będzie zmierzać, a N będzie liczbą całkowitą od 0 do 31 włącznie ...
Dwa ograniczenia, że ...
1) Nie chcę, żebyście używali tablic do przechowywania swoich danych dla punktów lub głów ... To będzie oszustwo, proszę pana, i dostaniesz smak mojej blunderbuss ... To ma Trzeba się liczyć, tak jak w dawnych czasach! Arrr!
2) Wygrywa najkrótszy kod, albo będę sprawiał, że idziesz po desce ... Arrr!
'
(Apostrof) w jednym pytaniu. Czapki z głów! : DOdpowiedzi:
Perl 5.10 przy użyciu podstawienia,
231228226224Dodano cztery nowe znaki dla czytelności.
Edycja: Gra w golfa jeszcze 2 bajty za pomocą
pop
. Dzięki @Dom HastingsEdycja: 2 bajty mniej przy użyciu
qw()
źródło
Za dużo czasu spędzam na szukaniu skarbów tutaj, ale oto rozwiązanie w Javie :
edytuj Jeśli zminimalizuję powyższy kod i uczynię go naprawdę brzydkim, stałoby się tak:
Java, 770 znaków
źródło
aaarrrgs
Arrays.asList
polecenia, wybacz mi tutaj za moją ignorancję w Javie, ale czy to nie jest użycie macierzy pamięci? Czy jest to podstępny sposób wprowadzania tablicy w postaci listy? ;)switch
zamiast tego instrukcji (z kilkoma dodatkowymi znakami, niestety). Och i dodana skrócona wersja tego samego kodu. Zastanowię się nad dalszym zmniejszeniem go, poprzez zmianę sposobu jego działania.Python, 264
Używa to wielkich liter jak na stronie wikipedii i powinno działać dla dowolnej liczby.
źródło
Arrr Python, 336
Dzięki @Jeen
źródło
Perl 5.10,
262257254Nieco podobny do jednego z rozwiązań Python:
Dodano cztery nowe znaki dla czytelności.
Edycja: Trzy bajty mniej dzięki @Dom Hastings
źródło
;
koniecsub p
i przełączając sięshift
napop
.