Gegeben
- eine Matrix
avon Zeichen ausu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋" - die Koordinaten eines Submatrix wie
x,y,w,h(links, oben, Breite> 1, Höhe> 1) - eine Dicke
tvon 1 (wie in┌) oder 2 (wie in┏)
Rendern Sie einen inneren Rand für die Submatrix mit der angegebenen Dicke unter Berücksichtigung vorhandener Linien.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
Beim Überschreiben eines Linienfragments sollte die neue Dicke größer sein als die alte Dicke und t.
Es geht nicht um Eingabe Parsen oder die Kolmogorov - Komplexität von Unicode zu finden, so dass man davon ausgehen kann a, u, x, y, w, h, tSie als Variablen zur Verfügung steht. Sie können das Ergebnis auch in eine Variable reinfügen, anstatt es zurückzugeben oder auszugeben, solange res vom selben Typ ist wie a.
Wenn Ihre Sprache Sie zwingt, Code in Funktionen (C, Java, Haskell usw.) einzufügen, und Ihre Lösung aus einer einzigen Funktion besteht, können Sie die Funktionskopf- und -fußzeile weglassen.
Größerer Test:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)und0 <= y < y + h < height(a)?