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.*