Dans Emoji Math, un module créé par l'utilisateur pour le jeu vidéo Keep Talking And Nobody Explodes, les nombres sont écrits sous forme de chaînes d'émoticônes, où chaque émoticône représente un chiffre de base 10. Voici le tableau de conversion entre les chiffres et les émoticônes.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Étant donné un nombre, affichez-le dans l'encodage Emoji Math. Vous pouvez supposer l'absence de caractères non numériques.
Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte.
Réponses:
Japt ,
2924 octets-5 octets grâce à @Shaggy
Prend l'entrée sous forme de chaîne
Essayez-le en ligne!
la source
m@
peut être remplacé par£
pour enregistrer un octet. Mais cela peut être fait en 24 octets en utilisant la conversion de base.C (gcc) ,
6258 octets-4 octets grâce au plafond
Essayez-le en ligne!
la source
05AB1E , 26 octets
Essayez-le en ligne!
la source
Python 2 ,
6562 octetsEssayez-le en ligne!
la source
TI-BASIC, 79 octets
L'entrée est une chaîne de chiffres
Ans
.La sortie est le nombre encodé en Emoji Math.
Exemples:
Explication:
Alternativement, voici une solution de 94 octets qui prend un nombre en entrée au lieu d'une chaîne:
Exemples:
Explication:
Remarques:
TI-BASIC est un langage tokenisé . Le nombre de caractères n'est pas égal au nombre d'octets.
|
est le jeton 0xBBD8 à deux octets accessible uniquement à l'aide de ce programme d'assemblage .la source
Perl 5
-p
, 42 octetsEssayez-le en ligne!
la source
Java 8, 80 octets
Essayez-le en ligne.
Explication:
la source
JS ES6,
7766 octetsJusqu'à 66 grâce aux suggestions de @Charlie Harding et @asgallant
J'ai finalement dû créer un compte sur codegolf car c'était un petit défi si amusant!
La forme la plus minimale de la réponse d'origine, lors de l'attente d'une entrée de chaîne uniquement:
Deuxièmement, ma réponse d'origine qui utilise une expression régulière plus longue et contraint d'abord l'entrée en une chaîne, cela fonctionne à la fois avec une entrée de type numérique et une chaîne de chiffres.
Les trucs du tableau JS sont amusants. Je suis sûr qu'il y a encore de la place pour l'optimisation, cela re-correspond à l'expression régulière sur chaque boucle de la
map
.Crappily testé avec les éléments suivants:
la source
=>
flèche sur la carte? Cela pourrait économiser deux octets, n'est-ce pas?/../g
fait le même travail aussi, économisant encore quatre octets[...(""+n)]
peut être simplifiée en[...n]
économisant cinq octets supplémentairesmap
et la recherche d'expression régulière vous coûte en fait des personnages ici;replace
etsubstr
fonctionne aussi bien, avec moins de caractères: 58 octets:, enn=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
supposant que l'entrée est une chaîne de chiffres.replace
bonne façon d'utiliser @asgallant! Il semble que je dois aussi connaître mes fonctions de chaîne :)Haskell,
6456 octets LaikoniEssayez-le en ligne
Non golfé
Appliquez la fonction
words
à notre chaîne de symboles séparés par des espaces":) =( (: )= :( ): =) (= :| |: "
pour obtenir une liste et obtenez le n ème élément(!!)
pour chaque n de notre chaîne d'entrée, en combinant les résultats. nb(=<<)
est équivalent àconcatMap
dans ce cas, mapper une chaîne à une liste de chaînes et concaténer les résultats.read . pure
convertit un caractère en int, en soulevant un caractère en chaîne, puis enread
ing en int.la source
[R],
5948 octetsune approche différente:
merci à @aaron de m'avoir redirigé :)
original:
Beats
par 1 octet
la source
2*scan()+1
, avec un peu de réarrangement, mais vous pouvez toujours le conserver sous 48 octets. Essayez-le en ligne!Gelée , 21 octets
Essayez-le en ligne!
la source
PowerShell ,
646059 octets-1 octet grâce à mazzy
Essayez-le en ligne!
Prend une chaîne, la fractionne
toCharArray
, puis indexe la clé emoji en transtypant le caractère à sa valeur numérique, la double parce que chaque emoji est large de deux, puis prend lasubstring
de cet endroit plus un plus haut. Enfin, il joint tout cela en une seule chaîne et le pousse à la sortie.la source
Icône ,
7875 octetsEssayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) ,
87,86,82, 67 octetsAccessoires à @Artholl et @someone pour aider à optimiser
Essayez-le en ligne!
la source
Substring
au lieu deSkip
&Take
et 1 octet si vous codez en dur la valeur zéro.48
au lieu de'0'
.JavaScript (ES6), 87 octets
la source
):
lieu de(:
pour3
Gelée , 24 octets
Essayez-le en ligne!
la source
Attaché , 34 octets
Essayez-le en ligne!
la source