Dado
- uma matriz
a
de caracteres deu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋"
- as coordenadas de uma submatriz como
x
,y
,w
,h
(esquerda, de cima, de largura> 1, altura> 1) - uma espessura
t
de 1 (como em┌
) ou 2 (como em┏
)
renderize uma borda interna para a submatriz com a espessura especificada, levando em consideração as linhas existentes.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
Ao substituir um fragmento de linha, a nova espessura deve ser a maior da espessura antiga e t
.
Não se trata de entrada de análise ou encontrar a complexidade de Kolmogorov de Unicode, assim você pode assumir a
, u
, x
, y
, w
, h
, t
estão disponíveis para você como variáveis. Além disso, você pode colocar o resultado em uma variável em r
vez de retorná-la ou produzi-la, desde que r
seja do mesmo tipo que a
.
Se sua linguagem obriga a inserir código em funções (C, Java, Haskell, etc) e sua solução consiste em uma única função, você pode omitir o cabeçalho e o rodapé da função.
Teste maior:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)
e0 <= y < y + h < height(a)
?Respostas:
JavaScript, 218 bytes
a
deve ser tomado como matriz de matriz de caracteres.Mostrar snippet de código
fonte
(a,x,y,w,h,t,u)=>...
porr=...
Python 3 ,
226201197 bytesExperimente online!
Ungolfed:
fonte
(p%3,p%9//3,p%27//9,p//27)[o]
→p//3**o%3
salva um monte de bytes. Entãomax(…)*3**o for
→3**o*max(…)for
salva mais um. E então você pode ganhar mais um, inline o3**
e embaralheP
para indexá-loo%5-1
, produzindo: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
e reduzi-lo a 201 #JavaScript (ES6), 174 bytes
Mostrar snippet de código
fonte