Dato
- una matrice
a
di personaggi diu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋"
- le coordinate di una sottomatrice come
x
,y
,w
,h
(left, top, width> 1, altezza> 1) - uno spessore
t
di 1 (come in┌
) o 2 (come in┏
)
eseguire il rendering di un bordo interno per la sottostruttura con lo spessore specificato, tenendo conto delle linee esistenti.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
Quando si sovrascrive un frammento di linea, il nuovo spessore dovrebbe essere maggiore del vecchio spessore e t
.
Non si tratta di analisi di input o di trovare la complessità di Kolmogorov di Unicode, quindi si può supporre a
, u
, x
, y
, w
, h
, t
sono a vostra disposizione come variabili. Inoltre, è possibile inserire il risultato in una variabile r
anziché restituirlo o emetterlo, purché r
sia dello stesso tipo di a
.
Se il tuo linguaggio ti costringe a inserire il codice nelle funzioni (C, Java, Haskell, ecc.) E la tua soluzione consiste in una singola funzione, puoi omettere l'intestazione e il piè di pagina della funzione.
Test più grande:
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)
?