Anda mengatur perburuan harta untuk teman-teman Anda. Untuk melakukan sesuatu dengan lebih mudah, Anda ingin menggambar peta dari semua lokasi di mana Anda menyembunyikan benda-benda berharga.
Memasukkan
Setiap bentuk input yang menunjukkan daftar poin yang terdiri dari (nonnegatif) koordinat x dan y, 0 0
karena sudut kiri atas diizinkan (Catatan: Anda juga dapat menggunakan pengindeksan berbasis 1 dalam jawaban Anda, silakan komentari jika Anda melakukannya. ). Contoh:
1 2
3 0
0 1
Tantangan
Fungsi atau program Anda harus dapat membuat peta yang menunjukkan setiap lokasi tertentu dengan x
tanda di mana ditemukan di baris y + 1 dan kolom x +1 pada output. Lokasi yang tidak ditandai diwakili dengan a . Peta juga terdiri dari bingkai di mana sudut
+
s, garis vertikal |
s dan garis horizontal -
s. Solusi Anda harus menampilkan kerangka sekecil mungkin. Peta untuk contoh input yang diberikan di atas:
+----+
| x|
|x |
| x |
+----+
Kemungkinan Kasus Uji
"0 0"
=>
+-+
|x|
+-+
"0 10
5 5
10 0"
=>
+-----------+
| x|
| |
| |
| |
| |
| x |
| |
| |
| |
| |
|x |
+-----------+
""
=>
++
++
"0 0
0 2
2 0"
=>
+---+
|x x|
| |
|x |
+---+
Tentu saja, ini adalah kode-golf , yang berarti bahwa solusi dengan jumlah byte terendah menang! Penjelasan tentang solusi Anda dianjurkan.
the input is a list of locations (e.g. nested list, list of tuples, space & newline separated, separate inputs, ect.)
Jawaban:
J ,
3734 byteCobalah online!
sumber
::empty
begitu bertele-tele? Apa yang dilakukannya? Mengapa tidak bisa disederhanakan menjadi 1 byte atau lebih? (Saya tidak memiliki pengetahuan tentang J)JavaScript (ES6), 150 byte
Mengambil input sebagai daftar koordinat 1-indeks dalam
[x,y]
format. Mengembalikan string.Cobalah online!
sumber
Haskell ,
127123 byteIni mendefinisikan operator
(!)
yang mengambil daftar x- koordinat dan daftar y- koordinat yang sesuai :Cobalah online!
Tidak Terikat / Penjelasan
Fungsi helper
m
mengharapkan daftar dan mengembalikan indeks (berbasis 1) hingga maksimum, jika daftar kosong itu kembali[]
:Operator yang sebenarnya
(!)
hanyalah pemahaman daftar, melintasi semua koordinat dan memilih karakteratau
x
, yang digabungkan dengan baris baru:sumber
Kanvas , 22 byte
Coba di sini!
Mengambil input yang diindeks 1.
Akhirnya memutuskan untuk memperbaiki bug yang telah mengganggu saya sejak lama dan menurunkannya hingga 21 byte .
Penjelasan (setengah ASCII untuk monospace):
sumber
Python 2 ,
151140138 byte-2 byte terima kasih kepada Jo King.
Input diindeks 1.
Cobalah online!
sumber
Arang , 37 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. 1-diindeks. Penjelasan:
Input kasus khusus kosong dengan menggambar kotak 2x2
+
s.Transposkan input, ambil maksimum setiap kolom (sekarang baris) dan tambahkan 2 untuk mendapatkan ukuran kotak dalam koordinat Charcoal.
Gambar kotaknya.
Simpulkan setiap koordinasi.
Lompat ke posisinya.
Tandai dengan sebuah salib.
sumber
Stax ,
323124 byteJalankan dan debug itu
Mengambil indeks berbasis 0 sebagai array
[y, x]
pasangan.Penjelasan:
sumber
|S
instruksi surround, dan peta steno singkatan. (m
) Surround mengambila
danb
dari stack dan menghasilkanb+a+b
. Dan Anda bisa menggunakanm
bukan final|J
untuk beralih pada baris dan menghasilkan output. Misalnyaz]n+H%
dengancM%
. Ini adalah bagian yang mendapatkan lebar peta, tetapi memiliki kasus khusus untuk peta kosong. Jika Anda mengubah urutan peta sebelum mengukurnya, kasing khusus hilang.R ,
133 125122 byteCobalah online!
1-diindeks. Mengambil matriks sebagai argumen. Disimpan 8 byte berkat digEmAll, 3 berkat Giuseppe! Penjelasan (versi kode sebelumnya):
sumber
[<-
langsung untuk menghapus kawat gigi.coords diambil dari format [y, x]
JavaScript (Node.js) ,
191184 byteCobalah online!
sumber
a.map(([y,x])
)JavaScript, 180 byte
sumber
Java 10,
238223 byteKoordinat 1-indeks.
Cobalah online.
Penjelasan:
sumber
get
/for
untuk? : S XDC (gcc) ,
246234 byteTerima kasih kepada ceilingcat untuk sarannya.
Diindeks nol. Fungsi mengambil daftar koordinat dan buffer, menemukan nilai x dan y maksimum, mengisi buffer dengan spasi, menghasilkan frame, dan kemudian memplot 'x's.
Cobalah online!
sumber
05AB1E ,
4442 byteCobalah online!
X dan Y dapat dibalik, tidak tahu apakah itu penting.
Saya pikir saya memiliki ini dalam lebih sedikit byte, tetapi kita akan melihat ...Tidak.sumber
F
keLv
, hapus,NV
dan ubahY
key
. 41 byteεZ}
bisa jadiۈ
.Ýv
tidakLv
, tapi masih hasil edit yang bagus :).Ýv
bukannyaLv
. Salahku.C (gcc) ,
229220216 byte-9 byte berkat ceilingcat .
Diindeks nol. Mengambil koordinat sebagai daftar angka, di mana angka genap adalah X dan angka ganjil adalah Y.
Cobalah online!
sumber
for(n&&X++-Y++;i<=Y;i+=puts(""))
alih-alihn&&X++-Y++;for(--i;i++<Y;puts(""))