¡Mira! ¡Es un laberinto ASCII! Soo coolzors, bolas de asombro y esas cosas.
+-+-----+---+
| | | |
| | ++ | |
| | ++ +-+ |
| | |
+-------+ | |
| | |
+---------+-+
Pero, pero, pero ... es un dolor determinar en qué dirección van todas las partes del laberinto. Solo quiero dibujar el diseño y el laberinto se hace mucho más grande sin mucho tiempo.
¿Y si pudiera dibujar esto en ...
#############
# # # #
# # ## # #
# # ## ### #
# # #
######### # #
# # #
#############
¡Eso sería muy dulce!
Las reglas (porque las reglas son frías):
- Escriba código para convertir una cadena en un laberinto ascii y generar el resultado.
- Cualquier carácter que no sea un espacio en blanco se leerá como un muro.
- Cada personaje de muro decidirá qué personaje se basará en sus vecinos (solo en las direcciones Norte, Sur, Este y Oeste).
- Si un carácter no tiene vecinos que no sean espacios en blanco, será un signo más (+).
- Si un personaje tiene vecinos en ambas direcciones vertical (Norte-Sur) y horizontal (Este-Oeste), será un signo más (+).
- Si un personaje tiene vecinos solo en dirección vertical (Norte-Sur), será un símbolo de tubería (|).
- Si un personaje tiene vecinos solo en dirección horizontal (Este-Oeste), será un signo menos (-).
- La entrada puede ser una sola cadena (con líneas separadas por caracteres de nueva línea o una matriz de cadenas).
- Todos los caracteres de entrada serán caracteres ASCII imprimibles, no necesita lidiar con caracteres extendidos.
- Use cualquier idioma antiguo que desee.
- Si hay un espacio en blanco antes de una línea, debe ser la misma cantidad en cada línea. Cualquier espacio en blanco después de cada línea de salida está bien.
- Intenta resolverlo con el menor número de bytes.
Casos de prueba:
1: marco
Entrada:
##########
# #
# #
# #
##########
Salida:
+--------+
| |
| |
| |
+--------+
2: laberinto clásico
Entrada:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Salida:
--------+-------+
| |
| --+-+ | ----+ |
| | | | | |
| + | | +---- | |
| | | | |
+-- | +----+- | |
| | | | | |
| --+ | ++ | -+
| | ++ |
+-----+-++----+--
3: Huevos verdes, hombre.
Entrada:
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!
Salida:
| ++ +++ ++++ +++++ +++- -++ ----
| ++ +++ ++++ +++++ +++ + +++
+-+++ +++ ++++ ++++ ++++ ++ +++---
| +++-+ +++ ++++ ++-+ +++++++++
4: carámbanos
Entrada:
Word Icicle!
Word Icicle
Word cicle
ord cicle
ord icle
ord i le
or i le
or i l
or l
or
r
Salida:
++++ ++++++-
++++ ++++++
++++ +++++
+++ +++++
+++ ++++
+++ | ++
++ | ++
++ | |
++ |
++
|
-
s o por qué el laberinto clásico no tiene cuatro +
s en la fila inferior.
smallest number of characters
, no bytes?
+
en el medio de la primera fila 2) el !
de Icicles debería reemplazarse por a -
. ¿Podría, por favor, verificar estos dos?
whitespace
, ¿te refieres solo al espacio? No quiero tener que soportar pestañas y probablemente tampoco quieras que transforme nuevas líneas
---
?