В Emoji Math, созданном пользователем модуле для видеоигры Keep Talking And Nobody Exploses, числа записываются в виде строк смайликов, где каждый смайлик представляет собой основную 10 цифру. Ниже приведена таблица перевода цифр и смайликов.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Учитывая число, выведите его в кодировке Emoji Math. Вы можете предположить отсутствие нечисловых символов.
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Ответы:
Japt ,
2924 байта-5 байт благодаря @Shaggy
Принимает ввод в виде строки
Попробуйте онлайн!
источник
m@
можно заменить,£
чтобы сохранить байт. Но это можно сделать за 24 байта, используя базовое преобразование.C (gcc) ,
6258 байтов-4 байта благодаря потолку
Попробуйте онлайн!
источник
05AB1E , 26 байт
Попробуйте онлайн!
источник
Python 2 ,
6562 байтаПопробуйте онлайн!
источник
TI-BASIC, 79 байтов
Ввод представляет собой строку цифр в
Ans
.Выход - число, закодированное в Emoji Math.
Примеры:
Объяснение:
В качестве альтернативы вот 94-байтовое решение, которое принимает в качестве входных данных число вместо строки:
Примеры:
Объяснение:
Примечания:
TI-BASIC - это токенизированный язык . Количество символов не равно количеству байтов.
|
это двухбайтовый токен 0xBBD8 , доступ к которому возможен только с помощью этой программы сборки .источник
Perl 5
-p
, 42 байтаПопробуйте онлайн!
источник
Java 8, 80 байт
Попробуйте онлайн.
Объяснение:
источник
JS ES6,
7766 байтДо 66 благодаря предложениям от @Charlie Harding и @asgallant
Пришлось наконец-то создать аккаунт на Codegolf, так как это было очень забавно!
Наиболее минимальная форма исходного ответа, когда ожидается ввод только строки:
Во-вторых, мой оригинальный ответ, который использует более длинное регулярное выражение и сначала приводит ввод в строку. Это работает как с вводом числового типа, так и с вводом строки цифр.
JS-массив - это весело. Я уверен, что еще есть место для оптимизации, это повторяет регулярное выражение в каждом цикле
map
.Лукаво проверено со следующим:
источник
=>
на карте есть пробелы вокруг стрелки? Это может сэкономить два байта, не так ли?/../g
тоже делает то же самое, сохраняя еще четыре байта[...(""+n)]
[...n]
map
и поиск регулярных выражений на самом деле стоит вам символов здесь;replace
иsubstr
работать так же хорошо, с меньшим количеством символов: 58 байт:n=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
при условии ввода в виде строки цифр.replace
отличный способ использовать @asgallant! Кажется, мне тоже нужно познакомиться со своими струнными функциями :)Haskell,
6456 Laikoni байтовПопробуйте онлайн
Ungolfed
Примените функцию
words
к нашей строке символов, разделенных пробелами,":) =( (: )= :( ): =) (= :| |: "
чтобы получить список, и получите n- й элемент(!!)
для каждого n в нашей входной строке, объединяя результаты. nb(=<<)
эквивалентноconcatMap
в этом случае отображению строки в список строк и объединению результатов.read . pure
преобразует символ в int, поднимая символ в строку, а затемread
в int.источник
[R],
5948 байтовдругой подход:
спасибо @aaron за то, что направил меня снова :)
оригинал:
биения
на 1 байт
источник
2*scan()+1
, с небольшой перестановкой, хотя вы все равно можете сохранить его как 48 байт. Попробуйте онлайн!Желе , 21 байт
Попробуйте онлайн!
источник
PowerShell ,
646059 байт-1 байт благодаря маззи
Попробуйте онлайн!
Берет строку, разбивает ее
toCharArray
, а затем индексирует в ключ смайликов, приводя символ к его числовому значению, удваивает его, потому что каждый смайлик имеет ширину два, а затем беретsubstring
с этого места плюс один выше. Наконец, он объединяет все это в одну строку и подталкивает к выводу.источник
Icon ,
7875 байтПопробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) ,
87,86,82, 67 байтПоддерживает @Artholl и @someone за помощь в оптимизации
Попробуйте онлайн!
источник
Substring
вместоSkip
&,Take
и 1 байт, если вы жестко задаете нулевое значение символа.48
вместо'0'
.JavaScript (ES6), 87 байт
источник
):
вместо(:
for3
Желе , 24 байта
Попробуйте онлайн!
источник
Атташе , 34 байта
Попробуйте онлайн!
источник