figlet
は、バナーなどで使用するためにプレーンテキストをASCIIアート表現に変換するユーティリティです。例えば:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
ascii-art出力を取得figlet
して元のプレーンテキストに戻すプログラムまたは関数を作成します。
インストールするのに役立つかもしれませんfiglet
。sudo apt-get install figlet
Ubuntu 14.04 を使用している場合に取得できるバージョン2.2.5があります。このフィグレットには、実際にはいくつかの「フォント」があります。このコンテキストの目的のために、デフォルトの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
and l
は同一ではありませんがV1
、and Vl
は同一です。