Ich poste schamlos eine Anfrage für etwas, das ich tatsächlich nützlich finden würde. Die Aufgabe besteht darin, eine beliebige ASCII-Box wie diese zu zeichnen
|
+----+----+
| state A +---+
+---------+ |
|
+----v----+
| state B |
+---------+
... und verwandeln Sie es mit Unicode-Zeichen in etwas Schöneres, z
│
╭────┴────╮
│ state A ├───╮
╰─────────╯ │
│
╭────v────╮
│ state B │
╰─────────╯
Ausführlicher:
- konvertiere nur + - | Zeichen - andere Zeichen sollten unverändert bleiben
verwenden
- BOX ZEICHNUNGEN HELL VERTIKAL (U + 2502) │
- BOX ZEICHNUNGEN LICHT HORIZONTAL (U + 2500) ─
- KASTENZEICHNUNGEN LICHTBOGEN UNTEN UND RECHTS (U + 256D) ╭
- KASTENZEICHNUNGEN LICHTBOGEN UNTEN UND LINKS (U + 256E) ╮
- BOX ZEICHNUNGEN LICHTBOGEN OBEN UND LINKS (U + 256F) ╯
- BOX ZEICHNUNGEN LICHTBOGEN OBEN UND RECHTS (U + 2570) ╰
- BOX ZEICHNUNGEN HELL VERTIKAL UND LINKS (U + 2524) ┤
- KASTENZEICHNUNGEN HELL VERTIKAL UND RECHTS (U + 251C) ├
- KASTENZEICHNUNGEN HELL UND HORIZONTAL (U + 252C) ┬
- KASTENZEICHNUNGEN LEUCHTEN UND HORIZONTAL (U + 2534) ┴
KASTENZEICHNUNGEN HELL VERTIKAL UND HORIZONTAL (U + 253C) ┼
- immer durch U + 2500 ersetzt
- | immer durch U + 2502 ersetzt
- + wird durch ein Unicode-Zeichen ersetzt, das von den 4 Zeichen im Norden, Süden, Osten und Westen abhängt (sofern vorhanden).
- <und> werden nördlich oder südlich von einem + als vertikale Wandsegmente behandelt (sodass Pfeile in vertikalen Wänden einer Box enden können).
- v und ^ werden als horizontale Wandsegmente behandelt, wenn sie östlich oder westlich von einem + liegen (sodass Pfeile in horizontalen Wänden einer Box enden können).
- + wird als Mauersegment behandelt, wenn entweder Norden, Süden, Osten oder Westen von + (so dass Linien neben einer Kastenecke verbunden werden können)
Testfälle
+-+ +---+ +---+ |
| +-- |ABC| -+ | +++
+-+ ++--+ +---+ +-+
|
+--->
| +--+
+-v+ +---+ | | +-----+
|Hi| -> | +^-+ |world<-----+
+--+ +---+ | +-----+ |
| +--
|
---+---
|
Wird
╭─╮ ╭───╮ ╭───╮ │
│ ├── │ABC│ ─┤ │ ╭┴╮
╰─╯ ╰┬──╯ ╰───╯ ╰─╯
│
╰───>
│ ╭──╮
╭─v╮ ╭───╮ │ │ ╭─────╮
│Hi│ ─> │ ╰^─╯ │world<─────╮
╰──╯ ╰───╯ │ ╰─────╯ │
│ ╰──
│
───┼───
│
Kürzester Code gewinnt!
+
überall mit Linien umrandet ist?Antworten:
JavaScript (ES6), 236 Byte
quelle