Donné
- une matrice
a
de caractères deu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋"
- les coordonnées d'une sous - matrice comme
x
,y
,w
,h
(gauche, haut, largeur> 1, la hauteur> 1) - une épaisseur
t
de 1 (comme dans┌
) ou 2 (comme dans┏
)
rendre une bordure intérieure pour la sous-matrice avec l'épaisseur spécifiée, en tenant compte des lignes existantes.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
Lors du remplacement d'un fragment de ligne, la nouvelle épaisseur doit être la plus élevée de l'ancienne épaisseur et t
.
On ne parle pas de l' analyse d' entrée ou de trouver la complexité de Kolmogorov d'Unicode, de sorte que vous pouvez supposer a
, u
, x
, y
, w
, h
, t
sont à votre disposition en tant que variables. En outre, vous pouvez placer le résultat dans une variable r
au lieu de le renvoyer ou de le produire, tant qu'il r
est du même type que a
.
Si votre langage vous oblige à mettre du code dans des fonctions (C, Java, Haskell, etc.) et que votre solution consiste en une seule fonction, vous pouvez omettre l'en-tête et le pied de page de la fonction.
Test plus grand:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)
et0 <= y < y + h < height(a)
?Réponses:
JavaScript, 218 octets
a
doit être considéré comme un tableau de tableau de caractères.Afficher l'extrait de code
la source
(a,x,y,w,h,t,u)=>...
parr=...
Python 3 ,
226201197 octetsEssayez-le en ligne!
Non golfé:
la source
(p%3,p%9//3,p%27//9,p//27)[o]
→p//3**o%3
enregistre un tas d'octets. Puismax(…)*3**o for
→3**o*max(…)for
enregistre un de plus. Et puis vous pouvez en extraire un de plus en insérant le3**
et en mélangeantP
pour l'indexer, ce quio%5-1
donne: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
et le descendre à 201JavaScript (ES6), 174 octets
Afficher l'extrait de code
la source