Schauen Sie sich dieses ASCII-Grafikdiagramm verschiedener Boxen an:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Jedes Feld besteht aus Pipe-Zeichen für die vertikalen Teile ( |
), Bindestrichen für die horizontalen Teile ( -
) und Pluszeichen für die Ecken ( +
).
Das Diagramm zeigt auch Kästchen innerhalb anderer Kästchen. Wir nennen die Anzahl der Boxen, die eine Box in der Ebene dieser Box enthält . Hier ist noch einmal das Diagramm, in dem der Layer der einzelnen Felder mit Anmerkungen versehen ist:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Ihr Programm nimmt ein Boxdiagramm als Eingabe, das dem oben gezeigten ähnlich ist. Als Ausgabe sollte Ihr Programm das Boxdiagramm ausgeben mit:
- Das Kästchen auf Ebene 0 sollte mit dem Zeichen gefüllt sein
#
(Hinweis: Es wird immer nur ein Kästchen auf Ebene 0 geben). - Felder auf Ebene 1 sollten mit dem Zeichen gefüllt sein
=
. - Felder auf Ebene 2 sollten mit dem Zeichen gefüllt sein
-
. - Felder auf Ebene 3 sollten mit dem Zeichen gefüllt sein
.
. - Felder auf Ebene 4 und höher sollten nicht ausgefüllt werden.
So sollte die Ausgabe der Beispieleingabe aussehen:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Hier ist eine weitere Eingabe und Ausgabe, die die Ebenen 3, 4 und 5 zeigt. Beachten Sie die horizontalen Linien oben, die sehr nahe beieinander liegen. In diesen Fällen ist nicht genügend Platz vorhanden, um die Zeichen dort zu füllen.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
Die Ausgabe:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Eine weitere Eingabe, diesmal mit den vertikalen Linien in der Nähe:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
Die Ausgabe:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Zusätzliche Bemerkungen
- Um das äußerste Feld kann ein Leerzeichen stehen.
- Boxen dürfen keine interne Breite oder Höhe von 0 haben (daher bleibt immer etwas Platz in ihnen)
- Felder auf derselben Ebene können sich berühren.
import java.util.Scanner
mitimport java.util.*
CJam,
11411110810410310298 BytesProbieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
JavaScript ( ES6 ) 156
Führen Sie zum Testen das Snippet in Firefox aus
quelle
CJam,
7674 BytesProbieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
APL (Dyalog Unicode) , 50 Byte SBCS
Probieren Sie es online!
s←' #=-.+|'
Weisen Sie der Variablen eine Zeichenfolge zus
⎕
ausgewertete Eingabe, es muss eine Zeichenmatrix sein⎕⍳⍨s
Ersetzen Sie jedes Element von⎕
durch seinen Index ins
a←
zuweisena
5=
gibt eine boolesche Matrix zurück, in der sich die+
-es befindena
(s[5]
is'+'
)(⊢ׯ1*+⍀++\)
dies ist ein Zug von Funktionen:+\
Matrix von Teilsummen pro Zeile+
Plus+⍀
Matrix von Teilsummen pro Spalte¯1*
Negativ eins hoch - verwandle die Quote in ¯1 und gleicht sie in 1 aus⊢×
multiplizieren Sie mit dem Argument des Zuges - setzen Sie alles außer den Ecken der Kisten auf Null+⍀+\
Teilsummen pro Spalte oder Teilsummen pro Zeile5⌊
Minimum davon und 55|
Modulo 5a,¨
Verbinde die Elemente dera
und der aktuellen Matrix0~¨⍨
entferne 0 von den Paaren⊃¨
zuerst alles was noch übrig ists[ ]
Verwenden Sie jedes Element als Index ins
quelle
↑⍞⍞...⍞
von rechts nach links ausgewertet wird. Für das erste Beispiel war das egal und ich habe vergessen, dies zu erwähnen..
s füllt, wo es nicht sein sollte> <> ,
118 11587 BytesProbieren Sie es online!
Wenn eines der Symbole kein Symbol ist,Eh, habe es ein-
kann es 6 Byte kürzer sein.bisschen gemachtsowieso kleiner gewordenWie es funktioniert:
quelle
C (gcc) ,
190179 Bytes-11 bytes dank ceilingcat
Schlägt fehl, wenn sizeof (int)> 9, aber dann können Sie Trost in der Tatsache, dass Ihr Computer aus der Zukunft ist.
Probieren Sie es online!
quelle