In Emoji Math, einem benutzerdefinierten Modul für das Videospiel Keep Talking And Nobody Explodes, werden Zahlen als Zeichenfolgen von Emoticons geschrieben, wobei jedes Emoticon eine 10-stellige Basis darstellt. Unten sehen Sie die Umrechnungstabelle zwischen Ziffern und Emoticons.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Geben Sie eine Zahl in der Emoji Math-Codierung aus. Sie können davon ausgehen, dass keine numerischen Zeichen vorhanden sind.
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Antworten:
Japt ,
2924 Bytes-5 Bytes dank @Shaggy
Nimmt die Eingabe als String
Probieren Sie es online!
quelle
m@
kann durch ersetzt werden£
, um ein Byte zu speichern. Dies kann jedoch mit der Basisumwandlung in 24 Bytes erfolgen .C (gcc) ,
62-58Bytes-4 Bytes dank Ceilingcat
Probieren Sie es online!
quelle
05AB1E , 26 Bytes
Probieren Sie es online!
quelle
Python 2 ,
6562 BytesProbieren Sie es online!
quelle
TI-BASIC, 79 Bytes
Die Eingabe ist eine Ziffernfolge in
Ans
.Die Ausgabe ist die mit Emoji Math codierte Zahl.
Beispiele:
Erläuterung:
Alternativ ist hier eine 94-Byte- Lösung, die eine Zahl anstelle einer Zeichenfolge als Eingabe verwendet:
Beispiele:
Erläuterung:
Anmerkungen:
TI-BASIC ist eine Token-Sprache . Die Anzahl der Zeichen entspricht nicht der Anzahl der Bytes.
|
ist das Zwei-Byte-Token 0xBBD8 , auf das nur mit diesem Assembly-Programm zugegriffen werden kann .quelle
Perl 5
-p
, 42 BytesProbieren Sie es online!
quelle
Java 8, 80 Bytes
Probieren Sie es online aus.
Erläuterung:
quelle
JS ES6,
7766 BytesBis auf 66 dank Vorschlägen von @Charlie Harding und @asgallant
Musste endlich einen Account bei Codegolf erstellen, da dies eine so lustige kleine Herausforderung war!
Die minimalste Form der ursprünglichen Antwort, wenn nur Zeichenfolgeneingaben erwartet werden:
Zweitens, meine ursprüngliche Antwort, die einen längeren regulären Ausdruck verwendet und zuerst die Eingabe in eine Zeichenfolge erzwingt. Dies funktioniert sowohl bei der Eingabe von Zahlentypen als auch bei der Eingabe von Ziffernfolgen.
JS Array Zeug macht Spaß. Ich bin mir sicher, dass noch Optimierungsbedarf besteht. Dies entspricht der Regex in jeder Schleife der
map
.Crappily mit den folgenden getestet:
quelle
=>
in der Karte Leerzeichen um den Pfeil? Das könnte zwei Bytes sparen, oder?/../g
macht den gleichen Job auch und spart weitere vier Bytes[...(""+n)]
kann sie vereinfacht werden[...n]
, um weitere fünf Bytes zu speichernmap
und die Suche nach regulären Ausdrücken kostet Sie hier tatsächlich Zeichen.replace
undsubstr
funktionieren genauso gut mit weniger Zeichen: 58 Bytes:n=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
unter der Annahme, dass die Eingabe als Ziffernfolge erfolgt.replace
@asgallant zu benutzen ! Scheint, ich muss auch meine String-Funktionen kennenlernen :)Haskell,
6456 Laikoni BytesProbieren Sie es online aus
Ungolfed
Wenden Sie die Funktion
words
auf unsere durch Leerzeichen getrennte Zeichenfolge an":) =( (: )= :( ): =) (= :| |: "
, um eine Liste zu erhalten, und ermitteln Sie das n- te Element(!!)
für jedes n in unserer Eingabezeichenfolge, indem Sie die Ergebnisse kombinieren. nb(=<<)
entsprichtconcatMap
in diesem Fall der Zuordnung einer Zeichenfolge zu einer Liste von Zeichenfolgen und der Verkettung der Ergebnisse.read . pure
Wandelt ein Zeichen in ein int um, indem ein Zeichen in einen String und dannread
in ein int umgewandelt wird.quelle
[R]
5948 Bytesanderer Ansatz:
danke an @aaron für die erneute anregung :)
Original:
schlägt
um 1 Byte
quelle
2*scan()+1
eine hinzufügen , mit ein wenig Neuordnung, obwohl Sie sie immer noch bei 48 Bytes belassen können. Probieren Sie es online!Jelly , 21 Bytes
Probieren Sie es online!
quelle
PowerShell ,
646059 Bytes-1 Byte dank mazzy
Probieren Sie es online!
Nimmt eine Zeichenfolge, teilt sie auf
toCharArray
und indiziert sie dann in den Emoji-Schlüssel, indem das Zeichen auf seinen numerischen Wert umgewandelt wird. Verdoppelt es, da jedes Emoji zwei breit ist, und nimmt dann dassubstring
von dieser Stelle plus eins höher. Schließlich fügt es dies alles zu einer Zeichenkette zusammen und schiebt es zur Ausgabe.quelle
Icon ,
7875 BytesProbieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) ,
87,86,82, 67 ByteWenden Sie sich an @Artholl und @someone, um zur Optimierung beizutragen
Probieren Sie es online!
quelle
Substring
anstelle vonSkip
& verwenden,Take
und 1 Byte, wenn Sie den Nullzeichenwert fest codieren.48
statt'0'
.JavaScript (ES6), 87 Byte
quelle
):
statt(:
für3
Gelee , 24 Bytes
Probieren Sie es online!
quelle
Attache , 34 Bytes
Probieren Sie es online!
quelle