Dalam Peta yang dimasukkan karakter ASCII , saya meminta Anda untuk .. memetakan karakter ASCII yang dimasukkan. Kali ini, Anda akan melakukan yang sebaliknya, dengan segera memetakan semua karakter ASCII, dan kemudian memetakan spasi di atasnya.
Program ini akan memiliki kegunaan praktis, seperti melihat karakter apa yang tersisa dalam pengajuan tantangan sumber terbatas .
Tantangan
Tugas Anda adalah menulis program yang membatalkan pemetaan karakter ASCII yang dimasukkan. Segera setelah program dijalankan, ia akan menampilkan peta yang tepat ini (kecuali warna, font, ukuran, dll.):
Setiap kali pengguna memasukkan karakter ASCII yang dapat dicetak, Anda akan mencetak spasi di atasnya.
Aturan
- Output awal harus persis seperti yang ditunjukkan pada gambar pertama di atas: kisi 6x16 dengan karakter ASCII di posisi masing-masing, dengan spasi (32) di kiri atas dan tilde (126) di satu karakter kiri dari kanan bawah.
- Program Anda hanya perlu menampilkan karakter ASCII yang dapat dicetak,
0x20
untuk0x7E
. - Program Anda tidak boleh berhenti dan terus mencetak spasi di atas karakter sampai semua karakter ASCII yang dapat dicetak telah ditimpa. Dari sini, program Anda dapat berakhir atau lari ke Neverland.
- Peta terbalik Anda harus diperbarui secara waktu nyata (segera setelah menerima input pengguna).
- Jika program Anda tidak membaca input secara diam-diam, ia harus mengeluarkan kursor, sehingga teks tidak akan menghalangi peta.
Ini tabel ASCII yang berguna untuk referensi.
Mencetak gol
Jawaban dengan byte terkecil di setiap bahasa menang. Selamat bersenang-senang!
Your program only needs to display the printable ASCII characters, 0x20 to 0x7E
Jawaban:
SOGL V0.12 , 23 byte
Coba Di Sini!
Mengambil input dalam kotak input. Saya harap ini bukan masalah besar yang bisa dihapus oleh karakter: hlm
Penjelasan:
sumber
x86-16 Kode Mesin, 62 byte
Hex dump:
Majelis:
sumber
C ++ (Visual C ++) , 253 (@Step Hen)
261bytesumber
#include
s, sertai + 0x20
->i+0x20
. Saya bisa saja salah.Python 3 , 116 byte
Cobalah online!
sumber
Python 2 , 132 byte
Disimpan 4 byte berkat @alleks!
Cobalah online!
sumber
[:-2]
setelahnyaprint s
saja?JavaScript (ES6) + HTML,
139136116 +1016 = 132 byte-3 byte terima kasih kepada @Shaggy.
-14 byte terinspirasi oleh @Arnauld.
pre
Tag penutup diperlukan dalam kasus ini, karena kita membutuhkaninnerText
nilai untuk memulai benar-benar kosong.sumber
O[h="innerHTML"]=a=[...Array(95)].map()
.a
sepenuhnya.a
variabel tambahan karenainnerHTML
berubah&
menjadi&
, bersama dengan beberapa yang lain. Beralih keinnerText
perbaikan itu.i
ke ruang lingkup global untuk menghemat 2 byte:map(_=>String.fromCharCode(i++)+(i%16?...),i=32)
QBasic , 107 byte
Fungsi anonim yang mengambil penekanan tombol, dan menghapus tabel ASCII
-8 byte berkat @DLosc
sumber
Sub
sana - Solusi hebat. Sayangnya, kami harus menghitungEnd Sub
karena komunitas telah memutuskan bahwa pelengkapan otomatis tidak valid (setidaknya dengan VBA, tapi saya yakin itu berlaku di sini juga)C # (.NET Core) , (138 + menggunakan Sistem;) 151 byte
Cobalah online!
sumber
using System;
ke dalam jumlah byte Anda jika Anda belum (saya lupa menambahkannya ke dalam hitungan di atas).Node.js
233212 byteDisimpan 21 byte berkat @thePirateBay
Ini berfungsi, saya masih mencoba menemukan opsi online karena semua replet yang saya temukan membajak stdin.
Cobalah online
sumber
b
sama sekali, dan Anda juga menggunakan pengidentifikasi yangreadline
tidak diinisialisasi (tidak yakin apakah itu kompatibel dengan versi di TIO). Anda juga tidak perlu variabelr
sama sekali, alih-alih&&
pada akhirnya, Anda bisa menggunakan,
dan mengatur ulang tanda kurung. Sama dengan&&
di awal. Juga, tidak perluprocess.stdout
direadline
antarmuka, dll ...........process.stdout
itu melempar (setidaknya pada versi node saya). Masalah readline adalah salah ketik (tekan ctrl-z terlalu banyak kali). Saya akan mengubah&&
s.process.stdout
. Anda dapat membaca spesifikasinya . Mungkin terjadi kesalahan jika Anda mengacaukan sesuatu dengan sisa kode Anda atau jika Anda menggunakan Node.js. versi lama / tidak konsistencreateInterface
ternyata kembaliundefined
jika Anda menghilangkan param kedua. Saya melanjutkan dan menghapusnya menurut dokumen yang Anda tautkan. Sejauh TIO berjalan, bagaimana Anda membuatnya interaktif?for(a=[],l=_=>console.log(a.join``),i=32;i<127;x=String.fromCharCode(i++),a.push(i&15?x:x+'\n'));l();require('readline').createInterface(process.stdin).on('line',c=>(a[a.indexOf(c)]=' ',l)())
Kode mesin 65c02 + Apple // e ROM, 52 (47?) Byte
Hex dump:
Majelis yang dikomentari:
Ini tidak memiliki kursor sama sekali. Saya juga memiliki versi 47 byte yang mungkin valid, tergantung pada apa yang dimaksud dengan "singkirkan kursor, sehingga teks tidak akan menghalangi peta":
Ini menempatkan kursor pada karakter setelah karakter yang Anda ketikkan (yang merupakan spasi di antara karakter), sehingga tidak akan menimpa karakter aktual apa pun di peta. Apakah ini valid atau tidak, tergantung pada pencipta tantangan.
sumber
Python 2 , 96 byte
Cobalah online! Output terlihat rapuh pada TIO (karena input dilewatkan dari file), tetapi itu baik-baik saja secara interaktif. Saya harap
'A'\n
,'B'\n
dll adalah format input yang oke.sumber