Данный
- матрица
a
символов изu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋"
- координаты подматрицы , как
x
,y
,w
,h
(слева, сверху, ширина> 1, высота> 1) - толщина
t
1 (как в┌
) или 2 (как в┏
)
визуализировать внутреннюю границу для подматрицы заданной толщины с учетом существующих линий.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
При перезаписи фрагмента строки новая толщина должна быть больше старой толщины и t
.
Речь идет не о входном разборе или найти сложность Колмогорова Юникода, поэтому можно считать a
, u
, x
, y
, w
, h
, t
доступны в качестве переменных. Кроме того, вы можете поместить результат в переменную r
вместо того, чтобы возвращать или выводить его, если r
он того же типа, что и a
.
Если ваш язык вынуждает вас помещать код в функции (C, Java, Haskell и т. Д.), И ваше решение состоит из одной функции, вы можете опустить верхний и нижний колонтитулы функции.
Большой тест:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)
и0 <= y < y + h < height(a)
?Ответы:
JavaScript, 218 байт
a
должен быть взят как массив массива char.Показать фрагмент кода
источник
(a,x,y,w,h,t,u)=>...
наr=...
Python 3 ,
226201197 байтПопробуйте онлайн!
Ungolfed:
источник
(p%3,p%9//3,p%27//9,p//27)[o]
→p//3**o%3
сохраняет кучу байтов. Затемmax(…)*3**o for
→3**o*max(…)for
сохраняет еще один. И затем вы можете получить еще один, вставив3**
и перемешивая,P
чтобы проиндексировать егоo%5-1
, получая:sum(o*max((i<n*A,j<m*B,y<j*B,x<i*A)[o%5-1]*t,p//o%3)for o in(1,3,9,27))
R=range
это до 201JavaScript (ES6), 174 байта
Показать фрагмент кода
источник