Saya tidak suka mengetik, jadi saya menggambar labirin dalam format yang sangat sederhana:
# #####
# #
# ### #
# # # #
# # #
##### #
Bukankah ini membingungkan ? Tentu saja, saya pikir semua labirin harus terlihat 3d, serupa tetapi tidak sama dengan tantangan ini , untuk labirin maksimum, jadi saya (enggan) secara manual memperbarui labirin agar terlihat seperti ini:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Sayangnya, sulit untuk bekerja dengan labirin dalam format itu, dan setelah semua itu mengetik manual, saya tidak ingin hanya mengetik ulang yang asli, jadi saya ingin Anda menulis sebuah program untuk melakukan pembalikan untuk saya.
Aturan
- Masukan akan menjadi string atau karakter matriks multiline hanya terdiri dari
" "
,"|"
,"\"
,"+"
,"-"
, dan baris baru. - Output terdiri dari
" "
dan"#"
, dalam pola yang dijelaskan oleh labirin. - Karena keterampilan merancang labirin yang luar biasa, Anda tidak dapat menganggap apa pun tentang struktur labirin, selain itu memiliki dekonstruksi yang valid.
- Dalam 3d-ification, (proses yang sekarang harus Anda batalkan,) masing
#
- masing dikonversi ke blok karakter 3x4x7 ini:+-----+ |\ \ + \ \ \ +-----+ \| | +-----+
- Blok yang berdekatan digabungkan bersama, seperti ini:
tetapi tanpa bergabung dengan garis, jadi itu benar-benar terlihat seperti ini:+-----+-----+ |\ \ \ + \ \ \ \ +-----+-----+ \|\ \ \ + \ \ \ \ +-----+-----+ \| | | +-----+-----+
+-----------+ |\ \ + \ \ \ \ \ \ \ \ \ \ \ \ +-----------+ \| | +-----------+
- Ruang cekung terkadang menghalangi bagian dinding lainnya.
+-----------+ |\ \ + \ \ \ \ +-----+ \ \ \ | \ \ \---+ \ +-----+ \| | +-----+
- Membuntuti spasi putih di input atau output dapat diterima. (Anda harus menentukan apakah jawaban Anda memerlukan spasi kosong di input.)
- Spasi terkemuka harus sesuai dengan spasi kosong di input.
- Saya masih tidak suka mengetik, jadi kode terpendek menang
Kasus uji:
Input:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Output:
# #####
# #
# ### #
# # # #
# # #
##### #
Input:
+-----+
|\ \
+ \ \
\ +-----+
\| |
+-----+
Output:
#
Input:
+-----------------+
|\ \
+ \ \
+-----+ +-----+ +-----+
|\ \ |\ \
+ \ \---+ \ \
\ \ +-----+ \ +-----+ \
\ \ \ | \| |\ \
\ \ \---+ +-----+ \ \
\ \ +-----+ +-----+ \
\ \ \ |\ \
\ \ \ + \ \
\ +-----+ +-----+ +-----+
\| |\ \ |
+-----+ \ \---+
\ +-----------------+
\| |
+-----------------+
Output:
###
## ##
# #
## ##
###
Input:
+-----------------------------------------------------------------------------------------------------+
|\ \
+ \ \
\ +-----------------------------------------------+ +-----------------------------------------+ \
\| |\ \ |\ \
+-----------------------------------------------+ \ \---------------------------------------+ \ \
+-----+ +-----------------------------+ \ \ \ +-----------------------------+ \ \ \
|\ \ |\ \ \ \ \ |\ \ \ \ \
+ \ \ + \ \ \ \ \ + \ \ \ \ \
\ \ \ \ +-----------+ +-----+ \ \ \ \ \ +-----------------------+ \ \ \ \
\ \ \ \| |\ \ |\ \ \ \ \ \| |\ \ \ \ \
\ \ \ +-----------+ \ \---+ \ \ \ \ \ +-----------------------+ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ \ \ +-----------------------+ \ \ \ \ \ \
\ \ \ |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ + \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------------------+ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------+ +-----+ \ \ \ \ \ \
\ \ \ | \ \ \ \ \ \ |\ \ | \ \ \ \ \ \
\ \ \---------+ \ \ \ \ \ \---------------------+ \ \---+ \ \ \ \ \ \
\ \ \ +-----------+ \ \ \ \ +-----------+ \ \ \ +-----+ \ \ +-----+
\ \ \ |\ \ \ \ \ |\ \ \ \ \ |\ \ \| |
\ \ \ + \ \ \ \ \ + \ \ \ \ \ + \ \ +-----+
\ \ \ \ +-----------------+ \ \ \ \ \ \ \ +-----+ \ +-----+ \
\ \ \ \| | \ \ \ \ \ \ \| | \| |\ \
\ \ \ +-----------------+ \ \ \ \ \ \ +-----+ +-----+ \ \
\ \ +-----------------------------+ +-----+ +-----------------------+ +-----------+
\ \ \
\ \ \
\ +-----------------------------------------------------------------------------------------------------+
\| |
+-----------------------------------------------------------------------------------------------------+
Output:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Input:
+-----------------+
|\ \
+ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ +-----------------+
\| |
+-----------------+
Output:
###
###
###
Input: (Note leading whitespace)
+-----+ +-----+
|\ \ |\ \
+ \ \ + \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+-----+-----+-----+
\| |\ \ |\ \
+-----+ \ \---+ \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+ \ +-----+
\| | \| |
+-----+ +-----+
Output:
# #
# #
# #
# #
Jawaban:
Python 2 , 81 byte
Cobalah online!
Mengambil input sebagai daftar string (atau daftar daftar karakter). Mencetak output, mengakhiri dengan kesalahan.
Idenya mirip dengan tsh . Kami melihat karakter yang ditandai seperti di
?
bawah ini untuk melihat spasi dan mana yang\
:Di dalam setiap baris dengan
?
's,\
menandai punggung bukit vertikal antara sel yang diisi dan sel kosong dari labirin. Karena punggungan ini berada di lapisan atas labirin,\
karakter mereka tidak pernah dikaburkan oleh elemen labirin lainnya.Untuk melihat
?
posisi, kode ini berderet melalui barisk=1,4,7,...
(indeks-nol), dan di setiap baris terlihat setiap posisi ke-6 dimulai dengan posisik
. Ini melacak apakah kita berada dalam sel kosong atau penuh dalam bitb
, dan membalik bit itu setiap kali\
ditemui. Setelah masing-masing karakter membaca, itu menambahkan karakter untuk kosong () atau penuh (
#
) sesuai denganb
, dan mencetak string yang dihasilkan setelah baris selesai.sumber
JavaScript (Node.js) , 85 byte
Cobalah online!
Ide adalah: kita hanya peduli pada karakter pada . Jika itu adalah tanda hubung ( ), sel saat ini memiliki nilai yang berbeda dengan sel di atasnya, dan jika itu adalah spasi ( ), sel saat ini memiliki nilai yang sama.(6x+3y+3,3y)
-
Terima kasih @ Arnauld , menyimpan 7 byte
sumber
Jelly ,
2220 byteCobalah online!
Tautan monadik yang mengambil string Jelly sebagai input dan mengembalikan labirin yang diproses sebagai string Jelly termasuk satu baris spasi spasi tambahan.
1 byte
Ḋ
dapat disimpan jika satu baris spasi putih terkemuka dapat diterima.Mengambil beberapa inspirasi dari formula @ tsh , jadi pastikan untuk menghapusnya juga!
Penjelasan
sumber
05AB1E ,
2522 byte-1 byte terima kasih kepada Kevin Cruijssen
Cobalah online!
Port jawaban Python xnor . Mengambil input sebagai matriks karakter. TIO link menunjukkan input sebagai string multiline untuk keterbacaan, dengan
|€S
header mengubahnya menjadi format matriks karakter.sumber
ε'\¢„ #sè}
keðм€g„ #sè
м
danK
.Retina 0.8.2 , 72 byte
Cobalah online! Penjelasan:
Hapus semua garis.
Hapus tiga baris terakhir karena saya tidak membutuhkannya.
Pertahankan hanya bagian tengah dari setiap kelompok yang terdiri dari tiga garis. (Dalam Retina 1, saya percaya dua tahap di atas dapat dilakukan dalam satu tahap:.
,G1,3,-5`
)Isi wajah balok.
Simpan hanya karakter kedua dari setiap blok.
sumber
C (dentang) ,
120117 byteCobalah online!
Terinspirasi oleh jawaban yang lain.
sumber