Сегодня день бекона, поэтому, наверное, именно поэтому шляпа для участия сегодня называется «Мммм Бэкон». Какой лучший способ отпраздновать день бекона с забавными заполненными 2-мерными матрицами, сделанными из бекона! Полоска бекона 1 на 1 представлена следующим образом:
-----
)===)
(===(
)===)
-----
Ваша цель здесь - дать две координаты в кортеже ( x
, y
), где x
и y
- ненулевые положительные целые числа, вы должны создать бекон и вернуться в некотором формате (список, массив, строка).
Вход и выход:
Input: (2, 1)
Output:
----------
)===))===)
(===((===(
)===))===)
----------
Input: (1, 2)
Output:
-----
)===)
(===(
)===)
-----
)===)
(===(
)===)
-----
Input: (2, 2)
----------
)===))===)
(===((===(
)===))===)
----------
)===))===)
(===((===(
)===))===)
----------
Правила:
Как вы можете видеть из второго контрольного примера, если несколько кусков бекона сложены вместе, то только один
-----
разделится с каждым кусочком бекона выше и / или ниже него. Это означает, что складывание бекона, как это недопустимо:----- )===) (===( )===) ----- ----- )===) (===( )===) -----
Стандартные лазейки запрещены
Код должен работать для вышеуказанных тестов и ниже:
(4, 4)
,(1, 6)
,(5, 1)
,(2, 3)
,(3, 2)
Предоставить переводчика, в котором могут быть проверены вышеуказанные тесты
Критерии победы:
Самый короткий код выигрывает! С Днем Бекона всем!
источник
Ответы:
V ,
28, 26, 24 байтаПопробуйте онлайн!
Объяснение:
источник
TI-Basic, 80 байтов
Этот был на самом деле довольно гениальным :)
источник
Input
без аргументов по умолчанию вводит данные вX
иY
.Python 2.7, 74 байта
Я уверен, что это может быть еще немного, но вот что я придумал (функция умножения строк в Python наверняка пригодится):
Попробуй это здесь !
Разгромленный с объяснением:
источник
Mathematica, 74 байта
Безымянная функция, принимающая два положительных целочисленных аргумента и возвращающая строку с символами новой строки. Стандартный подход Mathematica: создать двумерный массив строк с помощью средства выбора (mod 4) для циклического перемещения строк в вертикальном направлении, а затем свернуть их в одну строку.
источник
Пакетный, 168 байт
Скорее, к сожалению, я не могу написать
@echo %s:==-%
иначе, что исключило бы необходимость второй переменной.источник
&
...C
9189 байтисточник
05AB1E , 25 байтов
Код:
Объяснение:
Использует кодировку CP-1252 . Попробуйте онлайн!
источник
05AB1E ,
3230 байтСохранено 2 байта благодаря Аднану .
Попробуйте онлайн!
объяснение
источник
")===)"
на…)==û
:)Python 2 , 70 байт
Спасибо @xnor за сохранение 4 байта!
Попробуйте онлайн!
источник
[_::3]
, будет короче.2**n%5%3
какие циклы[1, 2, 1, 0, 1, 2, 1, 0, ...]
. Может ли это быть полезным?Python 2, 59 байт
Генерирует каждую строку как
a+b*3+a
из начального символа, такa
и из центрального символаb
(который рассчитывается изa
). Вa
цикле «S через'-()('
, в то время какb
это ,'-'
когдаa
это'-'
, а в'='
противном случае.67 байт:
Создает каждую строку из своего внешнего символа
a
и центрального символаb
какa+b*3+a
, а затем печатаетw
копии этого. Эти циклы черезzip
.источник
JavaScript,
132129121 байт-8 байт благодаря @ user2428118
Это вполне может быть больше в гольфе. Если у вас есть предложение, пожалуйста, оставьте его в комментариях.
источник
(x,y)=>eval('a=b=[d="-----",c=")===)","(===(",c,d];for(i=0;++i<y;)b=[...b,...a.slice(1)].map(v=>v.repeat(x)).join
_BACKTICK NEWLINE BACKTICK_;')
Lua, 132 байта
Длинная попытка буквальной строки. Попробуй это здесь .
источник
JavaScript (ES6), 78
Тест
источник
Язык GameMaker,
160139148 байт,133 байтисточник
Желе , 26 байт
Это диадическая ссылка (функция), которая возвращает двумерный массив.
Попробуйте онлайн!
Как это работает
источник
C
159158153 байтаЗвоните с:
источник
C #, 160 байт
Отформатированная версия:
Попробуйте онлайн! (по какой-то причине эта ссылка выдает ошибку, но все равно работает)
источник
Дротик,
125117 байтПопробуй это здесь!
источник
Dyalog APL, 55 байтов
Я впервые использую Dyalog APL, поэтому я уверен, что это не лучший подход.
Пояснение: Это довольно простой подход, для сетки бекона N × M я делаю матрицу N × (4M) из следующих четырех строк, повторяя:
Затем я соединяю строку
-----
в начало.Вот краткое объяснение кода:
источник
Tcl , 91 байт
Попробуйте онлайн!
источник
PowerShell , 64 байта
Попробуйте онлайн!
источник