W Emoji Math, utworzonym przez użytkownika module do gry wideo Keep Talking And Nobody Explosci, liczby zapisywane są jako ciąg znaków emotikonów, gdzie każda emotikon reprezentuje podstawową 10 cyfr. Poniżej znajduje się tabela konwersji cyfr i emotikonów.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Podaj liczbę, wyślij ją w kodowaniu Emoji Math. Możesz założyć brak znaków nienumerycznych.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
Japt ,
2924 bajtów-5 bajtów dzięki @Shaggy
Pobiera dane wejściowe jako ciąg
Wypróbuj online!
źródło
m@
można go zastąpić,£
aby zapisać bajt. Ale można to zrobić w 24 bajtach przy użyciu konwersji podstawowej.C (gcc) ,
6258 bajtów-4 bajty dzięki ceilingcat
Wypróbuj online!
źródło
05AB1E , 26 bajtów
Wypróbuj online!
źródło
Python 2 ,
6562 bajtówWypróbuj online!
źródło
TI-BASIC, 79 bajtów
Dane wejściowe to ciąg cyfr w
Ans
.Dane wyjściowe to liczba zakodowana w Emoji Math.
Przykłady:
Wyjaśnienie:
Alternatywnie, oto rozwiązanie 94-bajtowe , które przyjmuje liczbę jako dane wejściowe zamiast ciągu:
Przykłady:
Wyjaśnienie:
Uwagi:
TI-BASIC jest językiem tokenizowanym . Liczba znaków nie jest równa liczbie bajtów.
|
to dwubajtowy token 0xBBD8 , do którego dostęp można uzyskać tylko za pomocą tego programu asemblacyjnego .źródło
Perl 5
-p
, 42 bajtówWypróbuj online!
źródło
Java 8, 80 bajtów
Wypróbuj online.
Wyjaśnienie:
źródło
JS ES6,
7766 bajtówDo 66 dzięki sugestiom @Charlie Harding i @asgallant
Musiałem w końcu założyć konto w codegolf, ponieważ było to takie zabawne małe wyzwanie!
Najbardziej minimalna forma oryginalnej odpowiedzi, gdy oczekuje się tylko danych wejściowych:
Po drugie, moja pierwotna odpowiedź, która używa dłuższego wyrażenia regularnego i najpierw wymusza wejście w ciąg znaków. Działa to zarówno z wprowadzaniem typu liczbowego, jak i z wprowadzaniem ciągu cyfr.
Tablica JS jest fajna. Jestem pewien, że jest jeszcze miejsce na optymalizację, to ponownie dopasowuje wyrażenie regularne w każdej pętli
map
.Crappily przetestowany z następującymi:
źródło
=>
na mapie są spacje wokół strzałki? To mogłoby zaoszczędzić dwa bajty, prawda?/../g
wykonuje tę samą pracę, oszczędzając kolejne cztery bajty[...(""+n)]
można je uprościć[...n]
, oszczędzając kolejne pięć bajtówmap
a wyszukiwanie wyrażeń regularnych kosztuje tutaj postacie;replace
isubstr
działa równie dobrze, z mniejszą liczbą znaków: 58 bajtów:,n=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
przyjmując, że dane wejściowe są ciągiem cyfr.replace
@asgallant! Wydaje mi się, że muszę także poznać moje funkcje strunowe :)Haskell,
6456 bajtów LaikoniWypróbuj online
Nie golfił
Zastosuj funkcję
words
do naszego rozdzielonego spacjami łańcucha symboli,":) =( (: )= :( ): =) (= :| |: "
aby uzyskać listę i uzyskać n- ty element(!!)
dla każdego nw naszym ciągu wejściowym, łącząc wyniki. nb(=<<)
jestconcatMap
w tym przypadku równoznaczne z odwzorowaniem ciągu na listę ciągów i konkatenacją wyników.read . pure
konwertuje znak na int, podnosząc znak na ciąg, a następnieread
ing na int.źródło
[R],
5948 bajtówodmienne podejście:
dzięki @aaron za ponowne skierowanie mnie :)
oryginalny:
uderzenia
o 1 bajt
źródło
2*scan()+1
, z odrobiną rearanżacji, choć nadal możesz zachować ją jako 48 bajtów. Wypróbuj online!Galaretka , 21 bajtów
Wypróbuj online!
źródło
PowerShell ,
646059 bajtów-1 bajt dzięki mazzy
Wypróbuj online!
Bierze ciąg, dzieli go
toCharArray
, a następnie indeksuje do klucza emoji, rzutując znak na jego wartość liczbową, podwaja go, ponieważ każde emoji ma dwa szerokości, a następnie bierzesubstring
z tego miejsca plus jeden wyżej. Wreszcie łączy to wszystko w jeden ciąg i wypycha go na wyjście.źródło
Ikona ,
7875 bajtówWypróbuj online!
źródło
C # (interaktywny kompilator Visual C #) ,
87,86,82, 67 bajtówWspiera @Artholl i @someone za pomoc w optymalizacji
Wypróbuj online!
źródło
Substring
zamiastSkip
&Take
i 1 bajt, jeśli na stałe wpisałeś zerową wartość char.48
zamiast'0'
.JavaScript (ES6), 87 bajtów
źródło
):
zamiast(:
do3
Galaretka , 24 bajty
Wypróbuj online!
źródło
Attache , 34 bajty
Wypróbuj online!
źródło