примечание: строковое искусство может выглядеть здесь ужасно из-за странности шрифта SE: P :(
Учитывая список из четырех кортежей, представляющих углы прямоугольников, нарисуйте полупрозрачные прямоугольники друг над другом в этом порядке.
Для выполнения этой задачи вам необходимо иметь наименьшую координату в верхнем левом углу, а ось x увеличивается вправо, а ось y - вниз.
Четыре кортежа (x0, y0, x1, y1)
или (x0, x1, y0, y1)
представляют (x, y)
пары координат верхнего левого и нижнего правого углов прямоугольника (вы можете выбрать любой из двух форматов для прямоугольников, но он должен быть согласованным)
Что я имею в виду под «полупрозрачным прямоугольником»? Ну, для этой задачи вы будете использовать символ пробела и большинство символов рисования прямоугольников ; в частности, все те, которые используются для рисования прямоугольников, включая «жирные» символы. Когда рисуется полупрозрачный прямоугольник, сначала все тонкие линии в занимаемом пространстве исчезают, а все жирные линии становятся тонкими, а затем сам прямоугольник рисуется жирными линиями.
Например, если вы рисуете прямоугольник в верхнем левом углу, а затем в нижнем правом, он может выглядеть примерно так:
┏━━━━┓
┃ ┃
┃ ┃
┃ ┏━━╇━━┓
┃ ┃ │ ┃
┗━╉──┘ ┃
┃ ┃
┃ ┃
┗━━━━━┛
Для ясности, линии подсвечиваются (жирный -> тонкий -> нет) для всех линий строго внутри прямоугольника (например, линии, направленные вниз, затрагивают верхний край, но не нижний край).
Тестовые случаи
Для каждого контрольного примера будет дано некоторое количество строк ввода, за которым следует юникод-арт.
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
┏━━━━━┓
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┏━━╉┐ ┃
┃ ┃│ ┃
┃ ┃│ ┌╊┓
┗━━╉┘ │┃┃
┃ │┠┨
┃ │┃┃
┃ │┃┃
┗━━━━╈┩┃
┗┷┛
Создайте больше тестовых случаев!
правила
- Ввод может быть в любом разумном формате для списка из четырех кортежей. Входные данные могут быть один или ноль индексированным индексированные вдоль любой оси (т.е. верхнего левого угла может быть любым из
(0, 0)
,(0, 1)
,(1, 0)
,(1, 1)
. - Вывод должен быть таким же unicode-art, как описано. Выходные данные могут не иметь начальных символов новой строки и могут содержать не более одного завершающего символа новой строки (после последней строки). Конечные пробелы будут игнорироваться для целей этой задачи.
Код-очки
Жирные и светлые горизонтальные и вертикальные трубы находятся в ассортименте [U+2500, U+2503]
. Различные угловые трубы находятся в ассортименте [U+250C, U+251C)
. Трехрукие трубы находятся в пределах досягаемости [U+251C, U+253C)
. Четырехрукие трубы находятся в пределах досягаемости [U+253C, U+254C)
. Остальные каналы, которые можно найти в моей программе, никогда не используются.
Typically this uses only 95 printable (from a total of 128) characters defined by the ASCII Standard from 1963.