figlet
là tiện ích chuyển đổi văn bản đơn giản thành biểu diễn nghệ thuật ascii để sử dụng trong các biểu ngữ và tương tự. Ví dụ:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Viết chương trình hoặc hàm lấy đầu ra nghệ thuật từ figlet
và trả nó về văn bản gốc ban đầu.
Nó có thể hữu ích cho bạn để cài đặt figlet
. Tôi có phiên bản 2.2.5, đó là những gì bạn nhận được nếu bạn dùng sudo apt-get install figlet
Ubuntu 14.04. Bức tượng này thực sự có một số "phông chữ". Đối với mục đích của bối cảnh này, chúng tôi sẽ chỉ xử lý standard
phông chữ mặc định .
Văn bản đầu vào sẽ không rộng hơn 80 ký tự và sẽ được tạo từ văn bản thuần chỉ chứa các ký tự viết hoa và khoảng trắng.
Chương trình của bạn có thể không gọi figlet
hoặc mã nguồn của nó theo bất kỳ cách nào.
Thí dụ
Đầu vào:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Đầu ra:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Đầu vào:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Đầu ra:
STAR WARS
Lưu ý chỉnh sửa trước đó của câu hỏi này cho phép các đầu vào có chứa chữ in hoa và in thường cộng với chữ số. Nó đã chỉ ra rằng điều này gây ra một số điểm mơ hồ với các kết hợp nhân vật liền kề nhất định. Rõ ràng là tôi cần phải nghiêm túc tìm ra một tập hợp các nhân vật không có sự va chạm như vậy để cuộc thi thực sự có thể thực hiện được. Lúc đầu, tôi đã thử tất cả các chữ cái thường và chữ số với lớp vỏ này:
for t in {0..9}{a..z} {a..z}{a..z} {a..z}{0..9} {0..9}{0..9} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'
Điều này mang lại { j1
, jl
} và { i1
, il
} là các cặp không rõ ràng. Vì vậy, thay vì với tất cả các chữ cái viết hoa (như được đề xuất bởi @AlexA.), Không có cặp nào mơ hồ:
for t in {A-Z} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'
git://git.debian.org/git/collab-maint/figlet.git
(tải xuống với git clone
).
1
và l
không giống nhau, nhưng V1
và Vl
là.