figlet
adalah utilitas yang mengubah teks biasa menjadi representasi ascii-art untuk digunakan dalam spanduk dan sejenisnya. Sebagai contoh:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Tulis program atau fungsi yang mengambil output ascii-art dari figlet
dan mengembalikannya ke teks biasa aslinya.
Mungkin bermanfaat bagi Anda untuk menginstal figlet
. Saya memiliki versi 2.2.5 yang Anda dapatkan jika sudo apt-get install figlet
menggunakan Ubuntu 14.04. Figlet ini sebenarnya memiliki beberapa "font". Untuk keperluan konteks ini, kita hanya akan berurusan dengan standard
font default .
Teks input tidak lebih dari 80 karakter, dan dihasilkan dari teks biasa yang hanya berisi karakter huruf besar dan spasi.
Program Anda tidak boleh memanggil figlet
atau kode sumbernya dengan cara apa pun.
Contoh
Memasukkan:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Keluaran:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Memasukkan:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Keluaran:
STAR WARS
Perhatikan edit sebelumnya dari pertanyaan ini yang memungkinkan input yang berisi huruf besar dan kecil ditambah angka. Itu menunjukkan bahwa ini menyebabkan beberapa titik ambiguitas dengan kombinasi karakter tertentu yang berdekatan. Menjadi jelas bahwa saya perlu menemukan satu set karakter tanpa tabrakan sehingga kontes dapat dilakukan. Pada awalnya saya mencoba semua huruf kecil plus angka dengan shell-liner ini:
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'
Ini menghasilkan { j1
, jl
} dan { i1
, il
} sebagai pasangan yang ambigu. Jadi alih-alih dengan semua huruf besar (seperti yang disarankan oleh @AlexA.), Tidak ada pasangan yang ambigu:
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
(unduh dengangit clone
).1
danl
tidak identik, tetapiV1
danVl
sedang.Jawaban:
CJam, 147 byte, sedikit rusak
Ini melewati CODE GOLF dan AZ tetapi tidak STAR WARS (yang dibaca sebagai
SAR WARS
). Saya menyerah, tapi mungkin seseorang terinspirasi.sumber