Bezwstydnie wysyłam prośbę o coś, co naprawdę byłoby dla mnie przydatne. Zadanie polega na zrobieniu dowolnego rysunku ascii box w ten sposób
|
+----+----+
| state A +---+
+---------+ |
|
+----v----+
| state B |
+---------+
... i zamień go w coś piękniejszego, używając znaków rysujących w polu Unicode, np
│
╭────┴────╮
│ state A ├───╮
╰─────────╯ │
│
╭────v────╮
│ state B │
╰─────────╯
Bardziej szczegółowo:
- konwertuj tylko + - | znaki - inne znaki powinny pozostać niezmienione
posługiwać się
- RYSUNKI PUDEŁKA ŚWIATŁO PIONOWE (U + 2502) │
- RYSUNKI PUDEŁKOWE JASNE POZIOME (U + 2500) ─
- RYSUNKI PUDEŁKA ŚWIATŁO ŁUK W DÓŁ I PRAWO (U + 256D) ╭
- RYSUNKI POLA ŚWIATŁO ŁUK W DÓŁ I W LEWO (U + 256E) ╮
- RYSUNKI PUDEŁKA ŚWIATŁO ŁUK W GÓRĘ I W LEWO (U + 256F) ╯
- RYSUNKI PUDEŁKA ŚWIATŁO ŁUK W GÓRĘ I PRAWO (U + 2570) ╰
- RYSUNKI PUDEŁKA LEKKIE PIONOWE I LEWE (U + 2524) ┤
- RYSUNKI PUDEŁKA LEKKIE PIONOWE I PRAWE (U + 251C) ├
- RYSUNKI PUDEŁKA ŚWIATŁO W DÓŁ I POZIOME (U + 252C) ┬
- RYSUNKI POLE PODŚWIETLENIE I POZIOME (U + 2534) ┴
RYSUNKI PUDEŁKA LEKKIE PIONOWE I POZIOME (U + 253C))
- zawsze zastępowane U + 2500
- | zawsze zastępowane przez U + 2502
- + zostaje zastąpiony znakiem Unicode, który zależy od 4 znaków na północ, południe, wschód i zachód od niego (jeśli istnieją)
- <i> są traktowane jako pionowe segmenty ściany, jeśli na północ lub południe od + (tak, że możesz mieć strzałki kończące się w pionowych ścianach pudełka)
- v i ^ są traktowane jako poziome segmenty ściany, jeśli są na wschód lub na zachód od + (tak, że możesz mieć strzałki kończące się w poziomych ścianach pudełka)
- + jest traktowany jako segment ściany, jeśli znajduje się na północ, południe, wschód lub zachód od + (aby linie mogły łączyć się obok rogu pola)
Przypadki testowe
+-+ +---+ +---+ |
| +-- |ABC| -+ | +++
+-+ ++--+ +---+ +-+
|
+--->
| +--+
+-v+ +---+ | | +-----+
|Hi| -> | +^-+ |world<-----+
+--+ +---+ | +-----+ |
| +--
|
---+---
|
Staje się
╭─╮ ╭───╮ ╭───╮ │
│ ├── │ABC│ ─┤ │ ╭┴╮
╰─╯ ╰┬──╯ ╰───╯ ╰─╯
│
╰───>
│ ╭──╮
╭─v╮ ╭───╮ │ │ ╭─────╮
│Hi│ ─> │ ╰^─╯ │world<─────╮
╰──╯ ╰───╯ │ ╰─────╯ │
│ ╰──
│
───┼───
│
Najkrótszy kod wygrywa!
+
wszędzie wokół są linie?Odpowiedzi:
JavaScript (ES6), 236 bajtów
źródło