Lihat! Ini adalah labirin ASCII! Soo coolzors, amazeballs dan lainnya.
+-+-----+---+
| | | |
| | ++ | |
| | ++ +-+ |
| | |
+-------+ | |
| | |
+---------+-+
Tapi, tapi, tapi ... itu menyusahkan untuk mengetahui ke arah mana semua bagian labirin pergi. Saya hanya ingin menggambar tata letak dan labirin membuat dirinya sendiri jadi kul tanpa banyak waktu.
Bagaimana jika saya bisa menggambar ini di ...
#############
# # # #
# # ## # #
# # ## ### #
# # #
######### # #
# # #
#############
Itu akan sangat manis!
Aturan (Karena aturan keren):
- Tulis kode untuk mengonversi string menjadi labirin ascii dan hasilkan hasilnya.
- Setiap karakter non-spasi putih akan dibaca sebagai dinding.
- Setiap karakter dinding akan memutuskan karakter mana yang akan didasarkan pada tetangganya (hanya di arah Utara, Selatan, Timur dan Barat).
- Jika char tidak memiliki tetangga non-spasi putih, itu akan menjadi tanda tambah (+).
- Jika char memiliki tetangga di kedua arah vertikal (Utara-Selatan) dan horisontal (Timur-Barat), itu akan menjadi tanda tambah (+).
- Jika char memiliki tetangga hanya dalam arah vertikal (Utara-Selatan), itu akan menjadi simbol pipa (|).
- Jika char memiliki tetangga hanya dalam arah horisontal (Timur-Barat), itu akan menjadi tanda minus (-).
- Input dapat berupa string tunggal (dengan garis yang dipisahkan oleh karakter baris baru, atau array string).
- Semua karakter input akan dicetak karakter ASCII, Anda tidak perlu berurusan dengan rangkaian karakter yang diperluas.
- Silakan gunakan bahasa lama mana saja.
- Jika ada spasi putih sebelum garis, itu harus jumlah yang sama di setiap baris. Setiap ruang putih setelah setiap jalur output baik-baik saja.
- Coba atasi dengan jumlah byte terkecil.
Kasus uji:
1: Bingkai
Memasukkan:
##########
# #
# #
# #
##########
Keluaran:
+--------+
| |
| |
| |
+--------+
2: Labirin klasik
Memasukkan:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Keluaran:
--------+-------+
| |
| --+-+ | ----+ |
| | | | | |
| + | | +---- | |
| | | | |
+-- | +----+- | |
| | | | | |
| --+ | ++ | -+
| | ++ |
+-----+-++----+--
3: Telur hijau, man.
Memasukkan:
I do not like green eggs and ham.
I do not like them, sam I am.
Would you like them here or there?
I would not like them anywhere!
Keluaran:
| ++ +++ ++++ +++++ +++- -++ ----
| ++ +++ ++++ +++++ +++ + +++
+-+++ +++ ++++ ++++ ++++ ++ +++---
| +++-+ +++ ++++ ++-+ +++++++++
4: Es
Memasukkan:
Word Icicle!
Word Icicle
Word cicle
ord cicle
ord icle
ord i le
or i le
or i l
or l
or
r
Keluaran:
++++ ++++++-
++++ ++++++
++++ +++++
+++ +++++
+++ ++++
+++ | ++
++ | ++
++ | |
++ |
++
|
-s sama sekali atau mengapa labirin klasik tidak memiliki empat +s di baris bawah.
smallest number of characters, bukan byte?
+di tengah baris ke-2 2) !es harus diganti dengan a -. Bisakah Anda memeriksa ulang yang ini?
whitespace, apakah Anda hanya berarti hanya ruang? Saya tidak ingin harus mendukung tab dan Anda mungkin tidak ingin saya mengubah baris baru
---?