Ich schreibe nicht gerne, deshalb zeichne ich meine Labyrinthe in einem sehr einfachen Format:
# #####
# #
# ### #
# # # #
# # #
##### #
Ist es nicht a- Labyrinth -ing? Natürlich, ich glaube , alle Labyrinthe aussehen 3d sollen, ähnlich , aber nicht , dass er gleich wie diese Herausforderung , für eine maximalen a- Labyrinth -ingness, so dass ich (zähneknirschend) manuell durch das Labyrinth zu sehen wie folgt aktualisiert:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Leider ist es schwierig, mit Labyrinthen in diesem Format zu arbeiten, und nach all dem manuellen Tippen möchte ich nicht nur das Original neu tippen, sondern Sie müssen ein Programm schreiben, um die Umkehrung für mich vorzunehmen.
Regeln
- Eingang wird ein mehrzeiliges String oder Zeichenmatrix nur aus sein
" "
,"|"
,"\"
,"+"
,"-"
, und Zeilenumbrüche. - Die Ausgabe besteht aus
" "
und"#"
in dem vom Labyrinth beschriebenen Muster. - Aufgrund meiner erstaunlichen Fähigkeiten beim Entwerfen von Labyrinthen kann man nichts über die Struktur des Labyrinths annehmen, außer dass es eine gültige Dekonstruktion hat.
- In der 3D-Anpassung (der Vorgang, den Sie jetzt rückgängig machen müssen) wurde jeder
#
in diesen 3x4x7-Zeichenblock konvertiert:+-----+ |\ \ + \ \ \ +-----+ \| | +-----+
- Benachbarte Blöcke wurden wie folgt zusammengefügt:
aber ohne Verbindungslinien, so sieht es tatsächlich so aus:+-----+-----+ |\ \ \ + \ \ \ \ +-----+-----+ \|\ \ \ + \ \ \ \ +-----+-----+ \| | | +-----+-----+
+-----------+ |\ \ + \ \ \ \ \ \ \ \ \ \ \ \ +-----------+ \| | +-----------+
- Konkave Räume blockieren manchmal Teile anderer Wände.
+-----------+ |\ \ + \ \ \ \ +-----+ \ \ \ | \ \ \---+ \ +-----+ \| | +-----+
- Ein nachgestelltes Leerzeichen in der Eingabe oder Ausgabe ist akzeptabel. (Sie müssen angeben, ob für Ihre Antwort ein nachgestelltes Leerzeichen in der Eingabe erforderlich ist .)
- Führende Leerzeichen müssen Leerzeichen in der Eingabe entsprechen.
- Ich tippe immer noch nicht gern, also gewinnt der kürzeste Code
Testfälle:
Input:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Output:
# #####
# #
# ### #
# # # #
# # #
##### #
Input:
+-----+
|\ \
+ \ \
\ +-----+
\| |
+-----+
Output:
#
Input:
+-----------------+
|\ \
+ \ \
+-----+ +-----+ +-----+
|\ \ |\ \
+ \ \---+ \ \
\ \ +-----+ \ +-----+ \
\ \ \ | \| |\ \
\ \ \---+ +-----+ \ \
\ \ +-----+ +-----+ \
\ \ \ |\ \
\ \ \ + \ \
\ +-----+ +-----+ +-----+
\| |\ \ |
+-----+ \ \---+
\ +-----------------+
\| |
+-----------------+
Output:
###
## ##
# #
## ##
###
Input:
+-----------------------------------------------------------------------------------------------------+
|\ \
+ \ \
\ +-----------------------------------------------+ +-----------------------------------------+ \
\| |\ \ |\ \
+-----------------------------------------------+ \ \---------------------------------------+ \ \
+-----+ +-----------------------------+ \ \ \ +-----------------------------+ \ \ \
|\ \ |\ \ \ \ \ |\ \ \ \ \
+ \ \ + \ \ \ \ \ + \ \ \ \ \
\ \ \ \ +-----------+ +-----+ \ \ \ \ \ +-----------------------+ \ \ \ \
\ \ \ \| |\ \ |\ \ \ \ \ \| |\ \ \ \ \
\ \ \ +-----------+ \ \---+ \ \ \ \ \ +-----------------------+ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ \ \ +-----------------------+ \ \ \ \ \ \
\ \ \ |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ + \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------------------+ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------+ +-----+ \ \ \ \ \ \
\ \ \ | \ \ \ \ \ \ |\ \ | \ \ \ \ \ \
\ \ \---------+ \ \ \ \ \ \---------------------+ \ \---+ \ \ \ \ \ \
\ \ \ +-----------+ \ \ \ \ +-----------+ \ \ \ +-----+ \ \ +-----+
\ \ \ |\ \ \ \ \ |\ \ \ \ \ |\ \ \| |
\ \ \ + \ \ \ \ \ + \ \ \ \ \ + \ \ +-----+
\ \ \ \ +-----------------+ \ \ \ \ \ \ \ +-----+ \ +-----+ \
\ \ \ \| | \ \ \ \ \ \ \| | \| |\ \
\ \ \ +-----------------+ \ \ \ \ \ \ +-----+ +-----+ \ \
\ \ +-----------------------------+ +-----+ +-----------------------+ +-----------+
\ \ \
\ \ \
\ +-----------------------------------------------------------------------------------------------------+
\| |
+-----------------------------------------------------------------------------------------------------+
Output:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Input:
+-----------------+
|\ \
+ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ +-----------------+
\| |
+-----------------+
Output:
###
###
###
Input: (Note leading whitespace)
+-----+ +-----+
|\ \ |\ \
+ \ \ + \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+-----+-----+-----+
\| |\ \ |\ \
+-----+ \ \---+ \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+ \ +-----+
\| | \| |
+-----+ +-----+
Output:
# #
# #
# #
# #
Antworten:
Python 2 , 81 Bytes
Probieren Sie es online!
Nimmt Eingaben als Liste von Zeichenfolgen (oder als Liste von Zeichenlisten) entgegen. Druckt die Ausgabe und endet mit einem Fehler.
Die Idee ähnelt der von tsh . Wir schauen uns die
?
unten markierten Zeichen an, um zu sehen, welche Leerzeichen und welche sind\
:In jeder Zeile mit
?
's\
markiert a einen vertikalen Grat zwischen einer gefüllten Zelle und einer leeren Zelle des Labyrinths. Da sich diese Grate in der obersten Schicht des Labyrinths befinden, werden ihre\
Charaktere nie durch ein anderes Labyrinthelement verdeckt.Um die
?
Positionen zu betrachten, durchläuft der Code die Zeilenk=1,4,7,...
(mit dem Index Null), und in jeder Zeile wird jede sechste Position beginnend mit der Position betrachtetk
. Es wird nachverfolgt, ob sich das Bit in einer leeren oder einer vollen Zelle befindetb
, und dieses Bit wird bei jedem Auftreten von "a"\
umgedreht. Nach jedem gelesenen Zeichen wird das Zeichen entsprechend für leer () oder voll (
#
) angehängtb
und die resultierende Zeichenfolge gedruckt, nachdem die Zeile vollständig ist.quelle
JavaScript (Node.js) , 85 Byte
Probieren Sie es online!
Grundidee ist: Wir kümmern uns nur um die Charaktere auf . Wenn es sich um einen Bindestrich ( ) handelt, hat die aktuelle Zelle den anderen Wert als die oberste, und wenn es sich um ein Leerzeichen ( ) handelt, hat die aktuelle Zelle den gleichen Wert.(6x+3y+3,3y)
-
Danke @ Arnauld , 7 Bytes gespart
quelle
Jelly ,
22 bis20 BytesProbieren Sie es online!
Eine monadische Verknüpfung, die eine Jelly-Zeichenfolge als Eingabe verwendet und das verarbeitete Labyrinth als Jelly-Zeichenfolge mit einer Zeile abschließenden Leerzeichens zurückgibt.
1 Byte
Ḋ
könnte gespeichert werden, wenn eine einzelne Zeile mit führenden Leerzeichen akzeptabel wäre.Hat sich von @ tshs Formel inspirieren lassen , also stimmen Sie auch dieser zu!
Erläuterung
quelle
05AB1E ,
2522 Bytes-1 Byte dank Kevin Cruijssen
Probieren Sie es online!
Port von Xnors Python-Antwort . Übernimmt die Eingabe als Zeichenmatrix. Die TIO-Verknüpfung zeigt die Eingabe zur besseren Lesbarkeit als mehrzeilige Zeichenfolge an, wobei die
|€S
Kopfzeile diese in das Zeichenmatrixformat konvertiert.quelle
ε'\¢„ #sè}
bisðм€g„ #sè
м
undK
.Retina 0.8.2 , 72 Bytes
Probieren Sie es online! Erläuterung:
Verzerren Sie alle Linien.
Löschen Sie die letzten drei Zeilen, da ich sie nicht benötige.
Behalten Sie nur die Mitte jeder Gruppe von drei Zeilen. (In Retina 1 können die beiden oben genannten Phasen meines Erachtens in einer einzigen Phase ausgeführt werden:.
,G1,3,-5`
)Füllen Sie die Flächen der Blöcke aus.
Behalten Sie nur das zweite Zeichen jedes Blocks bei.
quelle
C (clang) ,
120 bis117 BytesProbieren Sie es online!
Inspiriert von den Antworten der anderen.
quelle