Вы принимаете Олимпийские игры, и вам нужно создать фантастический пул ради этого случая, но руководители часто передумают в отношении размеров и нуждаются в быстром способе перестроить его с требуемым размером!
Дано два целых числа, L
и x
ваша задача - построить бассейн длины L
и x
дорожек.
Как строится бассейн?
Он содержит внутренний квадрат, горизонтальные стены которого состоят из
L
последовательных штрихов (-
), а вертикальные стены сделаны из3x - 1
столбцов (|
). Кроме того, 4+
знака лежат в каждом углу. Давайте иметь пример (L = 10, x = 2
):+ ---------- + | | | | | | | | | | + ---------- +
Каждая полоса имеет ширину 2 вертикальных блока. Внутренний квадрат заполнен
x-1
разделителями дорожек, состоящими изL
последовательно расположенных по горизонтали:
символов. После установки разделителей дорожек наш пул должен выглядеть так:+ ---------- + | | | | | :::::::::: | | | | | + ---------- +
Пул также содержит отступ (внешний квадрат), горизонтальные стены которого (L + 4)
-
с, а вертикальные стены (3x + 1)|
с, который окружает внутренний квадрат:+ -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
И это наш ** олимпийский бассейн **!
Технические характеристики:
В целях дизайна и функциональности вам гарантировано, что
100 ≥ L ≥ 10
и15 ≥ x ≥ 2
.Вывод должен быть точно таким, как показано. Вывод "вертикально построенного" * пула не разрешен.
Трейлинг и ведущие пробелы разрешены.
Вы можете принимать и предоставлять данные любым стандартным способом .
Применяются стандартные лазейки .
Примеры / Тестовые случаи:
L = 20, х = 3 + ------------------------ + | + -------------------- + | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | + -------------------- + | + ------------------------ + L = 50, х = 5: + ------------------------------------------------- ----- + | + ------------------------------------------------- - + | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | + ------------------------------------------------- - + | + ------------------------------------------------- ----- + L = 10, х = 15 + -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
Это код-гольф , поэтому выигрывает самый короткий код в байтах !
* Вода может вытекать, если она построена вертикально: P
** Да, я знаю, что чем больше дорожек и чем короче пул, тем меньше рисунок выглядит как пул!
x>=L
??L=10
иx=15
? Не будет ли больше дорожек, чем можно было бы поместить в бассейн? Я мог бы неправильно понять намерениеОтветы:
Древесный уголь , 32 байта
Попробуйте онлайн!
-4 спасибо Нейлу .
АСТ:
источник
-a
аргумент командной строки.-a
ошибка> _ <Древесный уголь ,
403937 байтПопробуйте онлайн!
Я знаю, что у Нейла уже есть ответ на вопрос об угле примерно такой же длины, но я выбрал немного другой подход, поэтому решил, что я тоже могу опубликовать свой.
объяснение
источник
B
необязателен? Хорошо, это спасает меня от двух байтов!Древесный уголь,
40383631 байтПопробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Примитивы рисования в Charcoal используют общее количество символов, включая
+
s, однако в качестве входного значения используется только число-
s, поэтому нам нужно добавить 2, чтобы получить ширину внутренней стены.Рассчитайте высоту внутренней стены, опять же, включая нижний ряд, так что три на полосу плюс один.
Нарисуйте полосы. Это просто прямоугольник, заполненный
:
s, вертикально разделенный двумя пустыми строками (штрихами обозначены символы новой строки).Команда
Rectangle
именно то, что нам нужно нарисовать внутреннюю стену. Редактировать:Box
позволяет вам пропустить третий параметр, сэкономив мне 2 байта.И снова нарисовать внешнюю стену, кроме чуть более широкой и высокой, и центрированной по внутренней стене.
источник
T-SQL,
284281 байтВвод взят из столбцов INT L и X в существовавших ранее таблицах т , в соответствии с нашим разрешенными методами ввода .
По сути, я создаю длинную строку с буквами, представляющими повторяющиеся символы (d = тире, s = пробелы, c = двоеточия, b = разрыв строки), а затем ЗАМЕНЯЮ их всех в конце соответствующими заполнителями.
отформатирован:
Внутри цикла я добавляю 2 ряда пробелов и 1 ряд двоеточий, затем в конце я отсекаю этот разделительный ряд и добавляю границу пула перед выполнением замен.
РЕДАКТИРОВАТЬ : сохранить 3 байта путем переключения
@
на наиболее часто используемую переменную и поменять местами порядок инициализации.источник
JavaScript (ES6),
137124 байтаГольф немного на моем телефоне, больше, чтобы следовать.
Попытайся
источник
Питон 2 ,
124120117 байтов-2 байта благодаря Hyper Neutrino
Попробуйте онлайн!
источник
t
не нужна)SOGL V0.12 ,
5251 байтПопробуй здесь!
Неплохо, если учесть, что 20 байтов этой функции являются прямоугольниками, для которых у угля есть встроенная функция.
Объяснение:
источник
C # (.NET Core) , 202 байта
Попробуйте онлайн!
источник
Python 2 ,
128126 байтовПопробуйте онлайн!
-2 байта благодаря @ Mr.Xcoder
источник
PHP , 153 байта
Попробуйте онлайн!
источник
Python 2 , 97 байт
Попробуйте онлайн!
Python 2 , 98 байт
Попробуйте онлайн!
источник
Древесный уголь , 36 байт
Попробуйте онлайн!
Это более алгоритм Charcoal-y, чем мой другой ответ.
источник
C (gcc) , 195 байтов
Попробуйте онлайн!
источник
Perl 5 , 124 + 1 (-a) = 125 байт
Попробуйте онлайн!
источник