figlet
düz metni, afişlerde ve benzerlerinde kullanmak için bir ascii-art temsiline dönüştüren bir yardımcı programdır. Örneğin:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Ascii-art çıktısını alıp figlet
orijinal düz metnine döndüren bir program veya işlev yazın .
Yüklemeniz size yardımcı olabilir figlet
. sudo apt-get install figlet
Ubuntu 14.04'te alırsanız sahip olduğunuz 2.2.5 sürümüne sahibim . Bu grafik aslında birkaç "yazı tipine" sahiptir. Bu bağlamın amaçları doğrultusunda, sadece varsayılan standard
yazı tipiyle ilgileneceğiz .
Giriş metni 80 karakterden daha geniş olmayacak ve yalnızca büyük harf ve boşluk içeren düz metinden oluşturulacaktır.
Programınız figlet
hiçbir şekilde arama yapamaz veya kaynak kodunu arayamaz.
Misal
Giriş:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Çıktı:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Giriş:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Çıktı:
STAR WARS
Bu sorunun daha önceki bir düzenlemesinde büyük ve küçük harfler ile rakam içeren girişlere izin verildiğini unutmayın. Bunun, bazı bitişik karakter kombinasyonları ile birkaç belirsizliğe neden olduğuna dikkat çekildi. Bu tür çarpışmalar olmayan bir dizi karakteri titizlikle bulmam gerektiğinin anlaşılmasıyla yarışma gerçekten yapılabilir. İlk başta tüm küçük harfleri ve rakamları bu kabuk tek satırıyla denedim:
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'
Bu, belirsiz çiftler olarak { j1
, jl
} ve { i1
, il
} elde etti. Bu nedenle, tüm büyük harflerle (@AlexA tarafından önerildiği gibi), belirsiz çiftler yoktur:
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
(ile indir git clone
).
1
ve l
özdeş değil, ama V1
ve aynıdır Vl
.