aussehen! Es ist ein ASCII-Labyrinth! Also Coolzors, Amazing Balls und so.
+-+-----+---+
| | | |
| | ++ | |
| | ++ +-+ |
| | |
+-------+ | |
| | |
+---------+-+
Aber, aber, aber ... es ist eine Qual herauszufinden, in welche Richtung alle Teile des Labyrinths gehen. Ich möchte nur das Layout zeichnen und das Labyrinth sooper kul machen, ohne viel Zeit.
Was wäre, wenn ich das einfach einzeichnen könnte ...
#############
# # # #
# # ## # #
# # ## ### #
# # #
######### # #
# # #
#############
Das wäre sooo süß!
Die Regeln (weil Regeln cool sind):
- Schreiben Sie Code, um eine Zeichenfolge in ein ASCII-Labyrinth zu konvertieren und das Ergebnis auszugeben.
- Jedes Nicht-Leerzeichen wird als Wand gelesen.
- Jeder Wandcharakter entscheidet anhand seiner Nachbarn, welcher Charakter verwendet werden soll (nur in Nord-, Süd-, Ost- und Westrichtung).
- Wenn ein Zeichen keine Nachbarn ohne Leerzeichen hat, ist dies ein Pluszeichen (+).
- Wenn ein Zeichen Nachbarn in vertikaler (Nord-Süd) und horizontaler (Ost-West) Richtung hat, ist dies ein Pluszeichen (+).
- Wenn ein Zeichen nur in vertikaler Richtung (Nord-Süd) Nachbarn hat, ist dies ein Pipe-Symbol (|).
- Wenn ein Zeichen nur in horizontaler (Ost-West-) Richtung Nachbarn hat, ist dies ein Minuszeichen (-).
- Die Eingabe kann eine einzelne Zeichenfolge sein (mit durch Zeilenumbrüche getrennten Zeilen oder ein Array von Zeichenfolgen).
- Alle eingegebenen Zeichen sind druckbare ASCII-Zeichen. Erweiterte Zeichensätze sind nicht erforderlich.
- Verwenden Sie eine beliebige alte Sprache.
- Befindet sich vor einer Zeile ein Leerraum, sollte dieser in jeder Zeile gleich groß sein. Alle Leerzeichen nach jeder Ausgabezeile sind in Ordnung.
- Versuchen Sie es mit der kleinsten Anzahl von Bytes zu lösen.
Testfälle:
1: Frame
Eingang:
##########
# #
# #
# #
##########
Ausgabe:
+--------+
| |
| |
| |
+--------+
2: Klassisches Labyrinth
Eingang:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Ausgabe:
--------+-------+
| |
| --+-+ | ----+ |
| | | | | |
| + | | +---- | |
| | | | |
+-- | +----+- | |
| | | | | |
| --+ | ++ | -+
| | ++ |
+-----+-++----+--
3: Grüne Eier, Mann.
Eingang:
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!
Ausgabe:
| ++ +++ ++++ +++++ +++- -++ ----
| ++ +++ ++++ +++++ +++ + +++
+-+++ +++ ++++ ++++ ++++ ++ +++---
| +++-+ +++ ++++ ++-+ +++++++++
4: Eiszapfen
Eingang:
Word Icicle!
Word Icicle
Word cicle
ord cicle
ord icle
ord i le
or i le
or i l
or l
or
r
Ausgabe:
++++ ++++++-
++++ ++++++
++++ +++++
+++ +++++
+++ ++++
+++ | ++
++ | ++
++ | |
++ |
++
|
-
s haben oder warum das klassische Labyrinth keine vier +
s in der unteren Reihe hat.
smallest number of characters
nicht Bytes?
+
in der Mitte der 1. Reihe haben sollte 2) das !
der Eiszapfen durch ein ersetzt werden sollte -
. Könnten Sie diese bitte noch einmal überprüfen?
whitespace
, meinst du einfach nur Raum? Ich möchte keine Tabulatoren unterstützen müssen und Sie möchten wahrscheinlich auch nicht, dass ich Zeilenumbrüche umwandle
---
?