figlet
배너 등에서 사용하기 위해 일반 텍스트를 아스키 아트 표현으로 변환하는 유틸리티입니다. 예를 들면 다음과 같습니다.
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
아스키 아트 출력을 가져 와서 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'
5
나는 가장 짧은 프로그램이 가능한 모든 문자열을 반복하고, figlet을 호출 한 다음 평등을 비교하기 때문에 '당신은 figlet을 호출 할 수 없습니다'절을 제안합니다.
—
orlp
figlet의 소스 코드는 다음과 자식의 repo에서 찾을 수 있습니다
—
손잡이
git://git.debian.org/git/collab-maint/figlet.git
(다운로드로 git clone
).
참고 :이 과제는 코드 골프는 물론 코드 작성이 매우 어렵습니다.
—
Lynn
1
와 l
동일하지 않은,하지만 V1
하고 Vl
있습니다.
figlet을 실행할 수있는 시스템이없는 사람들을 위해 다양한 온라인 버전이 있습니다. "figlet online"을 검색하십시오. 예를 들어,이 모습은 매우 간단하고 광고 무료 : network-science.de/ascii . "표준"글꼴을 선택했는지 확인하십시오.
—
Reto Koradi