Ce défi est un couper-coller de l'art Agrandir ASCII , mais inversé , en utilisant des caractères de demi-bloc basés sur PetSCII :
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Le but est donc de réduire par l' ascii-art1/2
soumis . Par exemple, à partir de la chaîne:
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OO OOOOOOO
OO OO OO OO OO OO OO OO OO OO OO
OO OO OO OO OO OOOOO OO OOO OO OO OO OOOOO
OO OO OO OO OO OO OO OO OO OO OO OO
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OOOOOOO OO
vous devez rendre:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(ou même:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-)
ou lorsque la tuyauterie:
wget -O - https://codegolf.stackexchange.com/q/19123/9424 |
sed -ne '/<pre><code>/,/<\/code><\/pre>/{//{/\//q};s/<pre><code>//;p}'
('l2v2l6v2'+ 'e1l1v3l2'+
'v3e1v7e1v7e1v7e1l2v6e1l4v5'+
'e1l6v4e1l8v3e1l7l3v2e1l9l3v1')
.replace(/[lve]\d/g,function
(c){return Array(-~c[1]).
join({l:' ',v:'Love'
,e:'\n'}[c[0
]])})
pourrait donner:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Certains échantillons:
Avec (approximativement) les mêmes règles:
- Entrée depuis STDIN ou fichier
- Chaque caractère soumis doit être représenté, seuls les espaces blancs doivent rester vides .
- C'est aussi du golf de code , donc le score le plus bas l'emporte. Le score est calculé comme suit:
+1
par caractères, à compter en caractères, pas en octets, c'est-à-dire:s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
compter 20 caractères, pas 52 !!-10
pour explication;+20
pour l'utilisation d'un outil ou d'une bibliothèque de polices externes.
xterm -xrm 'XTerm*renderFont:false' &
pour ouvrir une fenêtre de console capable de l'afficher correctement.Réponses:
GolfScript (90 caractères)
Une grande partie de cela va à la gestion des tableaux en lambeaux. Cas de test méchant:
contient 3 grilles 2x2 différentes avec une seule des 4 cellules contenant n'importe quel caractère.
Pour aggraver les choses, la
zip
transposition pour couper les colonnes en paires donne la même sortie pour["xx" "xxx"]zip
et["xxx" "xx"]zip
. Je commence donc par un remplissage pour m'assurer que toutes les lignes sont de même longueur uniforme et qu'il y a un nombre pair de lignes.Notez que ce programme suppose que l'interprète traitera "▗▖▄▝▐▞▟▘▚▌▙▀▜▛█" comme une chaîne de longueur 48, même si selon les instructions de la question, je le compte comme 16 caractères plus les délimiteurs.
J'ai testé cela au mieux de mes capacités, mais je ne trouve pas de police monospace qui rend ces caractères correctement.
la source
zip
sur des tableaux en lambeaux, et je suis assez surpris par ce qu'il semble faire, par exemple["##" "###"]
. Je vais devoir repenser mon approche.Perl 6 , 159 caractères (192 octets)
Essayez-le en ligne!
la source
Bash (203 caractères)
ou
la source
Perl (268 caractères)
ou
la source