Dalam Emoji Math, modul yang dibuat pengguna untuk permainan video Keep Talking And Nobody Explodes, angka ditulis sebagai string emotikon, di mana setiap emotikon mewakili basis 10 digit. Di bawah ini adalah tabel konversi antara angka dan emotikon.
Digit | Emoticon
0 | :)
1 | =(
2 | (:
3 | )=
4 | :(
5 | ):
6 | =)
7 | (=
8 | :|
9 | |:
Diberi nomor, tampilkan dalam pengodean Emoji Math. Anda dapat mengasumsikan tidak adanya karakter non-numerik.
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jawaban:
Japt ,
2924 byte-5 byte terima kasih kepada @Shaggy
Mengambil input sebagai string
Cobalah online!
sumber
m@
dapat diganti dengan£
untuk menyimpan byte. Tapi ini bisa dilakukan dalam 24 byte menggunakan konversi basis.C (gcc) ,
6258 byte-4 bytes berkat ceilingcat
Cobalah online!
sumber
05AB1E , 26 byte
Cobalah online!
sumber
Python 2 ,
6562 byteCobalah online!
sumber
TI-BASIC, 79 byte
Input adalah serangkaian digit
Ans
.Output adalah nomor yang dikodekan Emoji Math.
Contoh:
Penjelasan:
Sebagai alternatif, berikut ini adalah solusi 94 byte yang menggunakan nomor sebagai input alih-alih sebuah string:
Contoh:
Penjelasan:
Catatan:
TI-BASIC adalah bahasa tokenized . Jumlah karakter tidak sama dengan jumlah byte.
|
adalah token dua-byte 0xBBD8 yang hanya dapat diakses menggunakan program perakitan ini .sumber
Perl 5
-p
, 42 byteCobalah online!
sumber
Java 8, 80 byte
Cobalah online.
Penjelasan:
sumber
JS ES6,
7766 byteTurun ke 66 berkat saran dari @Charlie Harding dan @asgallant
Harus akhirnya membuat akun di codegolf karena ini adalah tantangan kecil yang menyenangkan!
Bentuk paling minim dari jawaban asli, saat mengharapkan input hanya string:
Kedua, jawaban asli saya yang menggunakan regex yang lebih panjang dan pertama memaksa input menjadi string, Ini bekerja dengan input tipe angka dan string input digit.
Hal-hal array JS menyenangkan. Saya yakin masih ada ruang untuk optimasi, ini mencocokkan kembali regex pada setiap loop
map
.Diuji dengan jelek sebagai berikut:
sumber
=>
panah di peta? Itu bisa menghemat dua byte, bukan?/../g
melakukan pekerjaan yang sama juga, menghemat empat byte lagi[...(""+n)]
dapat disederhanakan[...n]
, menyimpan lima byte lebih lanjutmap
dan pencarian regex sebenarnya dikenakan biaya karakter Anda di sini;replace
dansubstr
berfungsi dengan baik, dengan lebih sedikit karakter: 58 byte:,n=>n.replace(/./g,c=>':)=((:)=:():=)(=:||:'.substr(2*c,2))
dengan asumsi input sebagai serangkaian digit.replace
*** , itu cara yang rapi untuk menggunakan @gallant! Sepertinya saya harus mengenal fungsi string saya juga :)Haskell,
6456 Laikoni byteCobalah online
Tidak disatukan
Terapkan fungsi ini
words
ke string simbol yang dipisahkan oleh spasi":) =( (: )= :( ): =) (= :| |: "
untuk mendapatkan daftar, dan dapatkan elemen ke- n(!!)
untuk setiap n di string input kami, menggabungkan hasilnya. nb(=<<)
setara denganconcatMap
dalam hal ini, memetakan string ke daftar string dan merangkai hasilnya.read . pure
mengkonversi karakter ke int, dengan mengangkat karakter ke string, laluread
ke int.sumber
[R],
5948 bytependekatan yang berbeda:
terima kasih kepada @aaron untuk mengarahkan saya lagi :)
asli:
ketukan
dengan 1 byte
sumber
2*scan()+1
, dengan sedikit penataan ulang meskipun Anda masih dapat menyimpannya sebagai 48 byte. Cobalah online!Jelly , 21 byte
Cobalah online!
sumber
PowerShell ,
646059 byte-1 byte berkat mazzy
Cobalah online!
Mengambil string, membaginya dalam
toCharArray
, dan kemudian mengindeks ke tombol emoji dengan melemparkan karakter ke nilai numeriknya, menggandakannya karena setiap emoji dua lebar, dan kemudian mengambilsubstring
dari tempat itu ditambah satu lebih tinggi. Akhirnya ia menggabungkan semuanya menjadi satu string dan mendorongnya ke output.sumber
Ikon ,
7875 byteCobalah online!
sumber
C # (Visual C # Interactive Compiler) ,
87,86,82, 67 byteProps untuk @Artholl dan @someone untuk membantu mengoptimalkan
Cobalah online!
sumber
Substring
alih-alihSkip
&Take
dan 1 byte jika Anda hardcode nilai nol char.48
saja'0'
.JavaScript (ES6), 87 byte
sumber
):
bukan(:
untuk3
Jelly , 24 byte
Cobalah online!
sumber
Attache , 34 byte
Cobalah online!
sumber