Je poste sans vergogne une demande pour quelque chose que je trouverais réellement utile. La tâche consiste à prendre un dessin de boîte ascii arbitraire comme celui-ci
|
+----+----+
| state A +---+
+---------+ |
|
+----v----+
| state B |
+---------+
... et le transformer en quelque chose de plus beau en utilisant des caractères de dessin de boîte unicode, par exemple
│
╭────┴────╮
│ state A ├───╮
╰─────────╯ │
│
╭────v────╮
│ state B │
╰─────────╯
Plus en détail:
- convertir uniquement + - | caractères - les autres caractères ne doivent pas être modifiés
utilisation
- BOÎTE DESSINS LUMINEUX VERTICAL (U + 2502) │
- BOÎTE DESSINS LUMINEUX HORIZONTAL (U + 2500) ─
- DESSINS DE BOÎTE LUMIÈRE ARC VERS LE BAS ET DROITE (U + 256D) ╭
- DESSINS DE BOÎTE LIGHT ARC BAS ET GAUCHE (U + 256E) ╮
- DESSINS DE BOÎTE LUMIÈRE ARC EN HAUT ET GAUCHE (U + 256F) ╯
- DESSINS DE BOÎTE LUMIÈRE ARC VERS LE HAUT ET DROITE (U + 2570) ╰
- BOÎTE DESSINS LÉGÈRE VERTICALE ET GAUCHE (U + 2524) ┤
- BOÎTE DESSINS LUMINEUX VERTICAL ET DROIT (U + 251C) ├
- DESSINS DE BOÎTE LÉGERS ET HORIZONTAUX (U + 252C) ┬
- DESSINS DE BOÎTE LUMINEUX ET HORIZONTAUX (U + 2534) ┴
DESSINS DE BOÎTE LÉGÈRE VERTICALE ET HORIZONTALE (U + 253C) ┼
- toujours remplacé par U + 2500
- | toujours remplacé par U + 2502
- + est remplacé par un caractère unicode qui dépend des 4 caractères nord, sud, est et ouest de celui-ci (s'ils existent)
- <et> sont traités comme des segments de mur verticaux si au nord ou au sud d'un + (de sorte que vous pouvez avoir des flèches se terminant dans les murs verticaux d'une boîte)
- v et ^ sont traités comme des segments de mur horizontaux s'ils sont à l'est ou à l'ouest d'un + (de sorte que vous pouvez avoir des flèches se terminant dans les murs horizontaux d'une boîte)
- + est traité comme un segment de mur si au nord, au sud, à l'est ou à l'ouest d'un + (de sorte que les lignes puissent se connecter à côté d'un coin de boîte)
Cas de test
+-+ +---+ +---+ |
| +-- |ABC| -+ | +++
+-+ ++--+ +---+ +-+
|
+--->
| +--+
+-v+ +---+ | | +-----+
|Hi| -> | +^-+ |world<-----+
+--+ +---+ | +-----+ |
| +--
|
---+---
|
Devient
╭─╮ ╭───╮ ╭───╮ │
│ ├── │ABC│ ─┤ │ ╭┴╮
╰─╯ ╰┬──╯ ╰───╯ ╰─╯
│
╰───>
│ ╭──╮
╭─v╮ ╭───╮ │ │ ╭─────╮
│Hi│ ─> │ ╰^─╯ │world<─────╮
╰──╯ ╰───╯ │ ╰─────╯ │
│ ╰──
│
───┼───
│
Le code le plus court gagne!
+
a des lignes autour d'elle partout?Réponses:
JavaScript (ES6), 236 octets
la source