Veja! É um labirinto ASCII! Soo coolzors, amazeballs e outras coisas.
+-+-----+---+
| | | |
| | ++ | |
| | ++ +-+ |
| | |
+-------+ | |
| | |
+---------+-+
Mas, mas, mas ... é doloroso descobrir em que direção todas as partes do labirinto estão indo. Eu só quero desenhar o layout e o labirinto tornar-se mais suave sem muito tempo.
E se eu pudesse desenhar isso em ...
#############
# # # #
# # ## # #
# # ## ### #
# # #
######### # #
# # #
#############
Isso seria tão doce!
As regras (como as regras são resfriadas):
- Escreva um código para converter uma string em um labirinto ascii e produza o resultado.
- Qualquer caractere que não seja um espaço em branco será lido como uma parede.
- Cada caractere de parede decidirá qual personagem basear-se em seus vizinhos (apenas nas direções norte, sul, leste e oeste).
- Se um caractere não tiver vizinhos que não sejam espaços em branco, será um sinal de mais (+).
- Se um caractere tiver vizinhos nas direções vertical (Norte-Sul) e horizontal (Leste-Oeste), será um sinal de adição (+).
- Se um caractere tiver vizinhos apenas na direção vertical (Norte-Sul), será um símbolo de barra vertical (|).
- Se um caractere tiver vizinhos apenas na direção horizontal (Leste-Oeste), será um sinal de menos (-).
- A entrada pode ser uma única sequência (com linhas separadas por caracteres de nova linha ou uma matriz de sequências).
- Todos os caracteres de entrada serão caracteres ASCII imprimíveis; você não precisa lidar com conjuntos de caracteres estendidos.
- Use qualquer idioma antigo, por favor.
- Se houver espaço em branco antes de uma linha, deve ser a mesma quantidade em cada linha. Qualquer espaço em branco após cada linha de saída é bom.
- Tente resolvê-lo com o menor número de bytes.
Casos de teste:
1: Quadro
Entrada:
##########
# #
# #
# #
##########
Resultado:
+--------+
| |
| |
| |
+--------+
2: Labirinto clássico
Entrada:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Resultado:
--------+-------+
| |
| --+-+ | ----+ |
| | | | | |
| + | | +---- | |
| | | | |
+-- | +----+- | |
| | | | | |
| --+ | ++ | -+
| | ++ |
+-----+-++----+--
3: Ovos verdes, cara.
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!
Resultado:
| ++ +++ ++++ +++++ +++- -++ ----
| ++ +++ ++++ +++++ +++ + +++
+-+++ +++ ++++ ++++ ++++ ++ +++---
| +++-+ +++ ++++ ++-+ +++++++++
4: Sincelos
Entrada:
Word Icicle!
Word Icicle
Word cicle
ord cicle
ord icle
ord i le
or i le
or i l
or l
or
r
Resultado:
++++ ++++++-
++++ ++++++
++++ +++++
+++ +++++
+++ ++++
+++ | ++
++ | ++
++ | |
++ |
++
|
-
s ou por que o labirinto clássico não tem quatro +
s na linha inferior.
smallest number of characters
, não bytes?
+
no meio da 1ª linha 2) o !
dos sincelos deve ser substituído por um -
. Você poderia verificar esses dois?
whitespace
, você simplesmente não significa apenas espaço? Eu não quero ter que guias de apoio e você provavelmente não quer me transformar novas linhas quer
---
?