En Emoji Math, un módulo creado por el usuario para el videojuego Keep Talking And Nobody Explodes, los números se escriben como cadenas de emoticones, donde cada emoticón representa una base de 10 dígitos. A continuación se muestra la tabla de conversión entre dígitos y emoticones.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Dado un número, imprímalo en la codificación Emoji Math. Puede suponer la ausencia de caracteres no numéricos.
Esto es código de golf , por lo que gana la respuesta más corta en bytes.
Respuestas:
Japt ,
2924 bytes-5 bytes gracias a @Shaggy
Toma la entrada como una cadena
Pruébalo en línea!
fuente
m@
se puede reemplazar con£
para guardar un byte. Pero esto se puede hacer en 24 bytes usando la conversión base.C (gcc) ,
6258 bytes-4 bytes gracias a ceilingcat
Pruébalo en línea!
fuente
05AB1E , 26 bytes
Pruébalo en línea!
fuente
Python 2 ,
6562 bytesPruébalo en línea!
fuente
TI-BASIC, 79 bytes
La entrada es una cadena de dígitos en
Ans
.La salida es el número codificado en Emoji Math.
Ejemplos:
Explicación:
Alternativamente, aquí hay una solución de 94 bytes que toma un número como entrada en lugar de una cadena:
Ejemplos:
Explicación:
Notas:
TI-BASIC es un lenguaje tokenizado . El recuento de caracteres no es igual al recuento de bytes.
|
es el token de dos bytes 0xBBD8 al que solo se puede acceder mediante este programa de ensamblaje .fuente
Perl 5
-p
, 42 bytesPruébalo en línea!
fuente
Java 8, 80 bytes
Pruébalo en línea.
Explicación:
fuente
JS ES6,
7766 bytesHasta 66 gracias a las sugerencias de @Charlie Harding y @asgallant
¡Finalmente tuve que hacer una cuenta en codegolf ya que este fue un pequeño desafío tan divertido!
La forma más mínima de la respuesta original, cuando se espera una entrada de solo cadena:
En segundo lugar, mi respuesta original, que usa una expresión regular más larga y primero coacciona la entrada en una cadena, funciona tanto con la entrada de tipo de número como con una entrada de cadena de dígitos.
Las cosas de la matriz JS son divertidas. Estoy seguro de que todavía hay espacio para la optimización, esto vuelve a coincidir con la expresión regular en cada bucle del
map
.Crappily probado con lo siguiente:
fuente
=>
flecha en el mapa? Eso podría ahorrar dos bytes, ¿no?/../g
hace el mismo trabajo, ahorrando otros cuatro bytes[...(""+n)]
se puede simplificar[...n]
, ahorrando otros cinco bytesmap
y la búsqueda de expresiones regulares en realidad te está costando personajes aquí;replace
ysubstr
funciona igual de bien, con menos caracteres: 58 bytes:,n=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
suponiendo que la entrada es una cadena de dígitos.replace
@asgallant! Parece que tengo que conocer mis funciones de cadena también :)Haskell,
6456 bytes LaikoniPruébalo en línea
Sin golf
Aplique la función
words
a nuestra cadena de símbolos separados por espacios":) =( (: )= :( ): =) (= :| |: "
para obtener una lista y obtenga el n -ésimo elemento(!!)
por cada n en nuestra cadena de entrada, la combinación de los resultados. nb(=<<)
es equivalente a,concatMap
en este caso, asignar una cadena a una lista de cadenas y concatenar los resultados.read . pure
convierte un carácter en un int, levantando un carácter a una cadena, luegoread
ing a un int.fuente
[R],
5948 bytesenfoque diferente:
gracias a @aaron por dirigirme de nuevo :)
original:
latidos
por 1 byte
fuente
2*scan()+1
, con un poco de reorganización, aunque aún puede mantenerlo como 48 bytes. Pruébalo en línea!Jalea , 21 bytes
Pruébalo en línea!
fuente
PowerShell ,
646059 bytes-1 byte gracias a mazzy
Pruébalo en línea!
Toma una cadena, la divide
toCharArray
y luego la indexa en la tecla emoji al convertir el carácter en su valor numérico, lo dobla porque cada emoji tiene dos anchos y luego toma elsubstring
de ese lugar más uno más alto. Finalmente, une todo esto en una sola cadena y lo empuja a la salida.fuente
Icono ,
7875 bytesPruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) ,
87,86,82, 67 bytesApoyos a @Artholl y @someone por ayudar a optimizar
Pruébalo en línea!
fuente
Substring
lugar deSkip
&Take
y 1 byte si codifica el valor de carácter cero.48
lugar de'0'
.JavaScript (ES6), 87 bytes
fuente
):
lugar de(:
para3
Jalea , 24 bytes
Pruébalo en línea!
fuente
Adjunto , 34 bytes
Pruébalo en línea!
fuente