나는 실제로 유용하다고 생각되는 것에 대한 요청을 뻔뻔스럽게 게시하고 있습니다. 이 작업은 다음과 같이 임의의 ASCII 상자 그리기를 취하는 것입니다
|
+----+----+
| state A +---+
+---------+ |
|
+----v----+
| state B |
+---------+
... 그리고 유니 코드 상자 그리기 문자를 사용하여 더 아름다운 것으로 바꿉니다.
│
╭────┴────╮
│ state A ├───╮
╰─────────╯ │
│
╭────v────╮
│ state B │
╰─────────╯
더 자세하게:
- + 만 변환 | 문자-다른 문자는 변경하지 않아야합니다
사용하다
- 상자 도면 라이트 수직 (U + 2502) │
- 상자 그림 LIGHT HORIZONTAL (U + 2500) ─
- 상자 그림 LIGHT ARC DOWN 및 RIGHT (U + 256D) ╭
- 상자 그림 LIGHT ARC DOWN 및 LEFT (U + 256E) ╮
- 상자 그림 LIGHT ARC UP AND LEFT (U + 256F) ╯
- 상자 그림 LIGHT ARC UP AND RIGHT (U + 2570) ╰
- 상자 도면 라이트 수직 및 왼쪽 (U + 2524) ┤
- 상자 그림 조명 수직 및 우측 (U + 251C) ├
- 박스 도면 소등 및 수평 (U + 252C) ┬
- BOX 도면 점등 및 수평 (U + 2534) ┴
상자 그림 빛 수직 및 수평 (U + 253C) ┼
-항상 U + 2500으로 교체
- | 항상 U + 2502로 교체
- +는 북쪽, 남쪽, 동쪽 및 서쪽의 4 자 (존재하는 경우)에 따라 달라지는 유니 코드 문자로 대체됩니다.
- <및>는 +의 북쪽 또는 남쪽 인 경우 수직 벽 세그먼트로 처리되므로 상자의 수직 벽에서 화살표가 종료 될 수 있습니다.
- v와 ^는 +의 동쪽 또는 서쪽 인 경우 수평 벽 세그먼트로 처리됩니다 (상자의 수평 벽에서 화살표로 끝나는 화살표가있을 수 있음)
- +는 북쪽, 남쪽, 동쪽 또는 서쪽의 + 인 경우 벽 세그먼트로 취급됩니다 (따라서 상자 모서리 옆에 선을 연결할 수 있음)
테스트 케이스
+-+ +---+ +---+ |
| +-- |ABC| -+ | +++
+-+ ++--+ +---+ +-+
|
+--->
| +--+
+-v+ +---+ | | +-----+
|Hi| -> | +^-+ |world<-----+
+--+ +---+ | +-----+ |
| +--
|
---+---
|
된다
╭─╮ ╭───╮ ╭───╮ │
│ ├── │ABC│ ─┤ │ ╭┴╮
╰─╯ ╰┬──╯ ╰───╯ ╰─╯
│
╰───>
│ ╭──╮
╭─v╮ ╭───╮ │ │ ╭─────╮
│Hi│ ─> │ ╰^─╯ │world<─────╮
╰──╯ ╰───╯ │ ╰─────╯ │
│ ╰──
│
───┼───
│
최단 코드 승리!
당신은 아마 의미 유니 코드 가 아닌 UTF-8
—
루이스 Mendo
테스트 사례가 있을까요? 특히 두 개의 상자가 가장자리 나 모서리에 닿는 경우 (또는 이러한 상황이 발생하지 않을 것이라는 설명)와 같은 가장자리의 경우에 특히 그렇습니다.
—
trichoplax
해당 테스트 사례에 필요한 출력을 게시하는 것이 좋습니다.
—
manatwork
어, 나는 방금 답을 작성하고 있었다 :-(
—
Neil
+
주위에 선이 있다면?