figlet
est un utilitaire qui convertit le texte brut en une représentation ascii-art pour une utilisation dans des bannières et similaires. Par exemple:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Écrivez un programme ou une fonction qui reprend la sortie ascii-art figlet
et la renvoie à son texte brut d'origine.
Il peut vous être utile d'installer figlet
. J'ai la version 2.2.5 qui est ce que vous obtenez si vous sudo apt-get install figlet
utilisez Ubuntu 14.04. Cette figlet a en fait plusieurs "polices". Aux fins de ce contexte, nous traiterons simplement de la standard
police par défaut .
Le texte saisi ne dépassera pas 80 caractères de large et aura été généré à partir de texte brut contenant uniquement les caractères majuscules et l'espace.
Votre programme ne peut en aucun cas appeler figlet
ou son code source.
Exemple
Contribution:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Production:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Contribution:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Production:
STAR WARS
Notez qu'une modification précédente de cette question permettait des entrées contenant des lettres majuscules et minuscules ainsi que des chiffres. Il a été souligné que cela provoquait plusieurs points d'ambiguïté avec certaines combinaisons de caractères adjacentes. Il est devenu évident que je devais trouver rigoureusement un ensemble de personnages sans de telles collisions afin que le concours soit réellement faisable. Au début, j'ai essayé toutes les lettres minuscules et les chiffres avec cette coque à une ligne:
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'
Cela a donné { j1
, jl
} et { i1
, il
} comme paires ambiguës. Donc, à la place, avec toutes les lettres majuscules (comme suggéré par @AlexA.), Il n'y a pas de paires ambiguës:
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
(télécharger avecgit clone
).1
etl
ne sont pas identiques, maisV1
et leVl
sont.Réponses:
CJam, 147 octets, légèrement cassé
Il passe CODE GOLF et AZ mais pas STAR WARS (qui se lit comme suit
SAR WARS
). J'abandonne, mais peut-être que quelqu'un est inspiré.la source