figlet
เป็นยูทิลิตี้ที่แปลงข้อความธรรมดาเป็นตัวแทน ASCII-art สำหรับใช้ในแบนเนอร์และสิ่งที่คล้ายกัน ตัวอย่างเช่น:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เอาท์พุท ASCII จากfiglet
และส่งกลับไปยังข้อความธรรมดาดั้งเดิม
figlet
มันอาจจะเป็นประโยชน์กับคุณในการติดตั้ง ฉันมีเวอร์ชั่น 2.2.5 ซึ่งเป็นสิ่งที่คุณจะได้รับหากคุณsudo apt-get install figlet
ใช้ Ubuntu 14.04 figlet นี้มี "ฟอนต์" หลายตัว สำหรับวัตถุประสงค์ของบริบทนี้เราจะทำการจัดการกับstandard
แบบอักษรเริ่มต้น
ข้อความที่ป้อนจะต้องไม่เกิน 80 ตัวกว้างและจะถูกสร้างขึ้นจากข้อความธรรมดาที่มีเฉพาะตัวอักษรและช่องว่าง
โปรแกรมของคุณไม่สามารถโทรfiglet
หรือรหัสต้นฉบับในทางใดทางหนึ่ง
ตัวอย่าง
การป้อนข้อมูล:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
เอาท์พุท:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
การป้อนข้อมูล:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
เอาท์พุท:
STAR WARS
หมายเหตุการแก้ไขคำถามก่อนหน้านี้อนุญาตอินพุตที่มีตัวอักษรตัวพิมพ์ใหญ่และเล็กบวกกับตัวเลข มันชี้ให้เห็นว่าสิ่งนี้ทำให้เกิดความกำกวมหลายจุดด้วยการรวมอักขระบางตัวที่อยู่ติดกัน เห็นได้ชัดว่าฉันจำเป็นต้องค้นหาตัวละครอย่างจริงจังโดยไม่มีการชนดังกล่าวเพื่อให้การแข่งขันทำได้จริง ตอนแรกฉันลองตัวอักษรตัวเล็กทั้งหมดบวกตัวเลขด้วยเปลือกหนึ่งซับ:
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'
สิ่งนี้ให้ผล { j1
, jl
} และ { i1
, il
} เป็นคู่ที่คลุมเครือ ดังนั้นแทนที่จะใช้ตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด (ตามที่ @AlexA แนะนำ) ไม่มีคู่ที่ไม่ชัดเจน:
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
(ดาวน์โหลดด้วยgit clone
)
1
และl
ไม่เหมือนกัน แต่V1
และVl
เป็น