Hinweis: Die String-Grafik könnte hier wegen der SE-Schriften-Verrücktheit schrecklich aussehen: P :(
Zeichnen Sie mit einer Liste von vier Tupeln, die die Ecken von Rechtecken darstellen, durchscheinende Rechtecke in dieser Reihenfolge übereinander.
Für diese Herausforderung ist es erforderlich, dass die kleinste Koordinate in der linken oberen Ecke und die x-Achse nach rechts und die y-Achse nach unten zunimmt.
Ein Vierertupel (x0, y0, x1, y1)
oder (x0, x1, y0, y1)
repräsentiert die (x, y)
Koordinatenpaare der oberen linken und unteren rechten Ecke eines Rechtecks (Sie können eines der beiden Formate für Rechtecke auswählen, aber es muss konsistent sein).
Was meine ich mit "durchscheinendem Rechteck"? Nun, für diese Herausforderung werden Sie das Leerzeichen und die meisten Box- Zeichen verwenden. Insbesondere alle, die zum Zeichnen von Rechtecken verwendet werden, einschließlich "fetter" Zeichen. Wenn ein durchscheinendes Rechteck gezeichnet wird, verschwinden zuerst alle dünnen Linien im besetzten Raum und alle fetten Linien werden dünn, und dann wird das Rechteck selbst in fetten Linien überzeichnet.
Wenn Sie beispielsweise oben links und unten rechts ein Rechteck zeichnen, sieht es möglicherweise so aus:
┏━━━━┓
┃ ┃
┃ ┃
┃ ┏━━╇━━┓
┃ ┃ │ ┃
┗━╉──┘ ┃
┃ ┃
┃ ┃
┗━━━━━┛
Um es klar auszudrücken, werden Linien für alle Linien innerhalb des Rechtecks aufgehellt (fett -> dünn -> keine) (z. B. sind nach unten weisende Linien für die Oberkante, aber nicht für die Unterkante betroffen).
Testfälle
Für jeden Testfall wird eine bestimmte Anzahl von Eingabezeilen gefolgt von Unicode-Art angegeben.
0 0 5 5
5 5 10 10
3 3 7 7
2 2 8 8
┏━━━━┓
┃ ┃
┃ ┏━━╇━━┓
┃ ┃┌─┴─┐┃
┃ ┃│ │┃
┗━╉┤ ├╊━┓
┃│ │┃ ┃
┃└─┬─┘┃ ┃
┗━━╈━━┛ ┃
┃ ┃
┗━━━━┛
14 5 15 9
13 2 15 16
6 4 15 11
┏━┓
┃ ┃
┏━━━━━━╇━┫
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┗━━━━━━╈━┫
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┗━┛
6 8 10 11
15 12 16 16
14 10 16 16
9 1 15 15
┏━━━━━┓
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┏━━╉┐ ┃
┃ ┃│ ┃
┃ ┃│ ┌╊┓
┗━━╉┘ │┃┃
┃ │┠┨
┃ │┃┃
┃ │┃┃
┗━━━━╈┩┃
┗┷┛
Generieren Sie weitere Testfälle!
Regeln
- Die Eingabe kann in jedem vernünftigen Format für eine Liste mit vier Tupeln erfolgen. Die Eingabe kann entlang jeder Achse (dh die obere linke Ecke kann eine beliebige von einer indizierten oder Null-indexiert werden
(0, 0)
,(0, 1)
,(1, 0)
,(1, 1)
. - Die Ausgabe muss wie beschrieben in Unicode erfolgen. Die Ausgabe enthält möglicherweise keine führenden Zeilenumbrüche und höchstens einen nachgestellten Zeilenumbruch (nach der letzten Zeile). Nachgestellte Leerzeichen werden bei dieser Abfrage ignoriert.
Code-Punkte
Die fetten und hellen horizontalen und vertikalen Rohre sind im Bereich [U+2500, U+2503]
. Die verschiedenen Eckrohre sind im Sortiment [U+250C, U+251C)
. Die dreiarmigen Pfeifen sind im Sortiment [U+251C, U+253C)
. Die vierarmigen Pfeifen sind im Sortiment [U+253C, U+254C)
. Die restlichen Pipes, die in meinem Programm zu finden sind, werden nie wirklich verwendet.
Typically this uses only 95 printable (from a total of 128) characters defined by the ASCII Standard from 1963.