Tôi xấu hổ đăng một yêu cầu cho một cái gì đó tôi thực sự sẽ thấy hữu ích. Nhiệm vụ là lấy một hộp ascii tùy ý vẽ như thế này
|
+----+----+
| state A +---+
+---------+ |
|
+----v----+
| state B |
+---------+
... và biến nó thành một thứ gì đó đẹp hơn bằng cách sử dụng các ký tự vẽ hộp unicode, vd
│
╭────┴────╮
│ state A ├───╮
╰─────────╯ │
│
╭────v────╮
│ state B │
╰─────────╯
Chi tiết hơn:
- chỉ chuyển đổi + - | ký tự - các ký tự khác không thay đổi
sử dụng
- HỘP VÒI ÁNH SÁNG CHỨNG NHẬN (U + 2502)
- HỘP VÒI ÁNH SÁNG HORIZONTAL (U + 2500) ─
- HỘP BẢN V LIGHT LIGHT ARC XUỐNG VÀ QUYỀN (U + 256D)
- HỘP BẢN V LIGHT LIGHT ARC DOWN VÀ LEFT (U + 256E)
- HỘP VÒI ÁNH SÁNG ARC LÊN VÀ TRÁI (U + 256F)
- HỘP VÒI ÁNH SÁNG ARC LÊN VÀ QUYỀN (U + 2570)
- HỘP VÒI ÁNH SÁNG VÀ TRÁI PHIẾU (U + 2524)
- HỘP VÒI ÁNH SÁNG VÀ QUYỀN (U + 251C)
- HỘP VÒI ÁNH SÁNG XUỐNG VÀ HORIZONTAL (U + 252C)
- HỘP VÒI ÁNH SÁNG LÊN VÀ HORIZONTAL (U + 2534)
HỘP VÒI ÁNH SÁNG CHỨNG VÀ ÁNH SÁNG (U + 253C)
- luôn được thay thế bằng U + 2500
- | luôn được thay thế bằng U + 2502
- + được thay thế bằng một ký tự unicode phụ thuộc vào 4 ký tự bắc, nam, đông và tây của nó (nếu chúng tồn tại)
- <và> được coi là các đoạn tường thẳng đứng nếu ở phía bắc hoặc phía nam của dấu + (để bạn có thể có mũi tên chấm dứt trong các bức tường thẳng đứng của hộp)
- v và ^ được coi là các phân đoạn tường ngang nếu phía đông hoặc phía tây của dấu + (để bạn có thể có mũi tên chấm dứt trong các bức tường ngang của hộp)
- + được coi là một đoạn tường nếu ở phía bắc, nam, đông hoặc tây của dấu + (để các đường có thể kết nối bên cạnh một góc hộp)
Tủ thử
+-+ +---+ +---+ |
| +-- |ABC| -+ | +++
+-+ ++--+ +---+ +-+
|
+--->
| +--+
+-v+ +---+ | | +-----+
|Hi| -> | +^-+ |world<-----+
+--+ +---+ | +-----+ |
| +--
|
---+---
|
Trở thành
╭─╮ ╭───╮ ╭───╮ │
│ ├── │ABC│ ─┤ │ ╭┴╮
╰─╯ ╰┬──╯ ╰───╯ ╰─╯
│
╰───>
│ ╭──╮
╭─v╮ ╭───╮ │ │ ╭─────╮
│Hi│ ─> │ ╰^─╯ │world<─────╮
╰──╯ ╰───╯ │ ╰─────╯ │
│ ╰──
│
───┼───
│
Mã ngắn nhất sẽ thắng!
Bạn có thể có nghĩa là Unicode chứ không phải UTF-8
—
Luis Mendo
Chúng tôi có thể có một số trường hợp thử nghiệm? Đặc biệt đối với các trường hợp cạnh như hai hộp chạm vào một cạnh hoặc góc (hoặc làm rõ rằng điều này sẽ không bao giờ xảy ra).
—
trichoplax
Sẽ được tốt đẹp để gửi các đầu ra cần thiết cho các trường hợp thử nghiệm.
—
manatwork
Ugh, tôi chỉ đang soạn một câu trả lời :-(
—
Neil
+
có các đường bao quanh nó ở khắp mọi nơi?