Kembali pada hari itu, autodialer telepon menggunakan kartu berlubang dengan satu kolom untuk setiap digit nomor yang akan dihubungi. Kolom memiliki tujuh baris. Tiga baris pertama mewakili angka (1,2,3), (4,5,6), dan (7,8,9) masing-masing. Tiga baris terakhir memutar pengaturan ini sebesar 90 °: (1,4,7), (2,5,8), dan (3,6,9). Baris tengah digunakan untuk 0. Setiap digit 1-9 akan memiliki dua lubang menekan - satu di tiga baris pertama, dan satu di tiga baris terbawah. Nol hanya akan membuat barisan tengah ditinju. Mari kita visualisasikan kolom yang dilubangi untuk angka 6 ( .
tidak dilubangi, x
dilubangi, panduan di sebelah kiri hanya untuk menggambarkan pengkodean):
123 .
456 x
789 .
0 .
147 .
258 .
369 x
Kami mencari baris mana yang berisi nomor yang kami coba panggil. Untuk 6, ini adalah baris kedua, dan baris kesembilan. Dua baris ini dilubangi, lima baris sisanya tidak dilubangi. Berikut adalah pola menekan untuk semua angka 0-9:
0 1 2 3 4 5 6 7 8 9
123 . x x x . . . . . .
456 . . . . x x x . . .
789 . . . . . . . x x x
0 x . . . . . . . . .
147 . x . . x . . x . .
258 . . x . . x . . x .
369 . . . x . . x . . x
Tujuan Anda adalah (menulis program atau fungsi) untuk membuat kartu ini untuk saya.
Input: Angka, diambil dalam format apa pun yang wajar (string, integer, daftar integer, & c.), Tidak melebihi 9999999999999.
Output: Kisi kolom berlubang yang sesuai dengan input nomor. Anda tidak perlu tajuk atau spasi tambahan yang ditunjukkan di atas, cukup kolom yang dilubangi sendiri. Leading / trailing newlines tidak apa-apa, seperti spasi di antara baris / kolom selama konsisten . Ngomong-ngomong, selama mereka konsisten, Anda dapat menggunakan karakter (non-spasi putih) untuk menekan, dan karakter lain untuk tidak ditinju (walaupun harus jelas, harap tentukan karakter apa yang Anda gunakan).
Ini kode-golf, jadi kode terpendek menang. Celah standar tidak diijinkan.
Kasus uji (semua digunakan .
untuk tidak ditinju, x
untuk ditinju):
In: 911
Out: .xx
...
x..
...
.xx
...
x..
In: 8675309
Out: ....x..
.x.x...
x.x...x
.....x.
..x....
x..x...
.x..x.x
In: 5553226
Out: ...xxx.
xxx...x
.......
.......
.......
xxx.xx.
...x..x
Jawaban:
Jelly , 13 byte
Cobalah online!
1
= tertusuk,0
= tidak tertusuk.sumber
Pyth, 25 byte
Penggunaan
0
untuk dipukul dan"
untuk tidak ditinju.Coba di sini
Penjelasan
sumber
JavaScript (ES6),
6054 byteMengambil input sebagai array bilangan bulat. Mengembalikan matriks biner, dengan 0 = unpunched / 1 = menekan.
Cobalah online!
sumber
05AB1E ,
1615 byteMenggunakan 0 dan 1 .
Cobalah online!
Penjelasan
sumber
SOGL V0.12 , 23 byte
Coba Di Sini!
Kompresi.
sumber
Python 2 , 84 byte
Cobalah online!
0/1
digunakan untuk tidak tertinju / menekan.sumber
Python 3 ,
8480 byteCobalah online!
sumber
C (dentang) ,
108107 byteCobalah online!
Mengambil nomor input sebagai string. Mencetak keluaran dalam
.
danX
seperti dalam contoh.Kredit
-1 byte terima kasih @ ASCII saja
sumber
putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))c-=48
alih-alihc-=48,putchar(".X"[(c--?16<<c%3|1<<c/3:8)>>i&1]))
J ,
3120 byte-11 byte terima kasih kepada FrownyFrog!
Cobalah online!
J , 31 byte
Cobalah online!
Mengambil input sebagai daftar digit
0 - tidak ditinju, 1 - dipukul
Penjelasan:
sumber
Kanvas ,
2725 byteCoba di sini!
sumber
Arang , 28 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Menggunakan 0/1, tetapi dapat mendukung karakter sewenang-wenang dengan biaya 1 byte: Coba online! . Penjelasan:
sumber
Perl 5
-F
, 52 byteCobalah online!
Penggunaan
1
untuk dipukul dan0
untuk tidak ditinju.sumber