Wyzwanie
Biorąc pod uwagę dane wejściowe w postaci, <n1>, <n2>
gdzie liczba może wynosić -1, 0 lub 1, zwraca odpowiedni kierunek kardynalny . Liczby dodatnie przesuwają się na wschód na osi x i południe na osi y, liczby ujemne przesuwają się na zachód na osi x i północ na osi y.
Wyjście musi być w formie South East
, North East
, North
. Rozróżnia małe i wielkie litery.
Jeśli wartością wejściową jest 0, 0, twój program musi powrócić That goes nowhere, silly!
.
Przykładowe dane wejściowe / wyjściowe:
1, 1
-> South East
0, 1
-> South
1, -1
-> North East
0, 0
-> That goes nowhere, silly!
To jest golf golfowy , wygrywa najkrótsza odpowiedź w bajtach.
code-golf
string
kolmogorov-complexity
Matias K
źródło
źródło
Odpowiedzi:
Japt ,
5551 bajtówWyjaśnienie
Wypróbuj online!
źródło
Python,
10187 bajtówNaprawdę naiwne rozwiązanie.
Dzięki @Lynn za zapisanie 14 bajtów! Zmiany: użycie metody string.split wydłuża ją; _; Ponadto w Pythonie istnieją ujemne indeksy.
źródło
lambda x,y:('','South ','North ')[y]+('','East','West')[x]or'That goes nowhere, silly!'
lambda x,y:'North htuoS'[::x][:6]+'EastseW'[::y][:4]
Edytuj: prawdopodobnie będzie teraz za długi, ale możesz zrobić drugie cięcie[:6*x**2]
, podobnie dla łańcucha Wschód / Zachód, jeśli można obejść błąd przy pierwszym krojeniu.lambda x,y:('North ','South ')[y+1]+('West','East')[x+1]or'That goes nowhere, silly!'
jest krótszy o 2 bajtySouth East
do(0, 0)
. Ale dziękuję!PHP, 101 bajtów
źródło
Perl 6 , 79 bajtów
Spróbuj
Rozszerzony:
źródło
JavaScript (ES6),
1061009793 bajtówTo bardzo proste podejście. Składa się z kilku zagnieżdżonych ze sobą operatorów trójskładnikowych -
Przypadki testowe
źródło
a!=0
można zastąpić przez justa
, ponieważ 0 jest fałszem, a wszystkie inne wartości są prawdziwe. Również przyjmowanie danych wejściowych w składni curry jest krótsze, a podejście do macierzy jest również krótsze.f=a=>b=>
i wywołując funkcję jakf(1729)(1458)
; o którymcurrying syntax
wspomniał @Luke.a|b
zamiasta||b
. Zakładając, że wejście składa się tylko z -1, 0 lub 1 (co jest jasne dla mnie), można zastąpića>0
ib>0
z~a
a~b
.a?(...):""
/b?(...):""
Partia, 156 bajtów
for
Pętla działa jako tablicy przeglądowej do filtra, (możliwie zanegowany) Parametr ten jest równy 1, a złączenie pasujące słowa. Jeśli nic nie zostanie wybrane, zamiast tego zostanie wydrukowana głupia wiadomość.źródło
JavaScript (ES6), 86 bajtów
Wyjaśnienie
Wywołaj to za pomocą curry syntax (
f(a)(b)
). To używa indeksów tablicowych. Jeśli obaa
ib
są 0, wynik jest falsy pusty ciąg. W takim przypadku ciąg po||
zwracany jest .Spróbuj
Wypróbuj wszystkie przypadki testowe tutaj:
źródło
GNU sed , 100 + 1 (flaga r) = 101 bajtów
Z założenia sed wykonuje skrypt tyle razy, ile jest linii wejściowych, więc w razie potrzeby można wykonać wszystkie przypadki testowe za jednym razem. Poniższy link TIO właśnie to robi.
Wypróbuj online!
Wyjaśnienie:
Pozostała przestrzeń wzoru na końcu cyklu jest drukowana niejawnie.
źródło
05AB1E ,
484543 bajtówWypróbuj online!
Wyjaśnienie
źródło
Galaretka , 40 bajtów
Wypróbuj online!
źródło
Japt , 56 bajtów
Wypróbuj online! | Pakiet testowy
Wyjaśnienie:
źródło
00
jest dokładnie taka sama0
, jak po usunięciu dodatkowej cyfry;)Retina ,
848281 bajtów1 bajt zapisany dzięki @seshoumara za sugerowanie
0...?
zamiast0\w* ?
Wypróbuj online!
źródło
Nor
iSou
)0...?
.Szybkie 151 bajtów
źródło
PHP, 95 bajtów.
To po prostu wyświetla element tablicy, a jeśli nic nie ma, wyświetla tylko komunikat „domyślny”.
Ma to działać z
-r
flagą, przyjmując współrzędne jako pierwszy i drugi argument.źródło
C # ,
95102 bajtówGrał w golfa
Nie golfił
Nieczytelny czytelny
Pełny kod
Wydawnictwa
+ 7 bytes
- Zawijany urywek do funkcji.95 bytes
- Wstępne rozwiązanie.Notatki
Jestem duchem, boo!
źródło
(a,b)=>{...}
bita=>b=>
, możesz nie potrzebować()
wokół niegoa|b
, możesz być w stanie użyć interpolowanych ciągów, aby również ładniej zbudować ciąg()
okolicea|b
, robię to potrzebne, w przeciwnym razieOperator '|' cannot be applied to operands of type 'int' and 'bool'
. Próbowałem również interpolowanych ciągów, ale nie dawałem wiele ze względu na""
błędy.Scala, 107 bajtów
Wypróbuj online
Aby użyć tego, zadeklaruj to jako funkcję i wywołaj:
Jak to działa
źródło
C, 103 bajty
źródło
Java 7, 130 bajtów
Wyjaśnienie:
Kod testowy:
Wypróbuj tutaj.
Wynik:
źródło
CJam , 68 bajtów
Wypróbuj online! lub zweryfikuj wszystkie przypadki testowe
Drukuje jedno końcowe miejsce na
[0 -1]
lub[0 1]
(North
lubSouth
).Wyjaśnienie
źródło
Röda , 100 bajtów
Wypróbuj online!
To trywialne rozwiązanie, podobne do niektórych innych odpowiedzi.
źródło