Este desafío es un corte y pegado del arte Ampliar ASCII , pero se invierte , utilizando caracteres de medio bloque basados en PetSCII :
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Por lo tanto, el objetivo es reducir 1/2
presentando ascii-art . Para muestra, de la cadena:
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
tienes que renderizar:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(o incluso:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-)
o donde la tubería:
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
]])})
podria dar:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Algunas muestras:
Con (aproximadamente) las mismas reglas:
- Entrada de STDIN o archivo
- Cada carácter enviado debe estar representado, solo los espacios en blanco deben estar vacíos .
- Este también es el código de golf , por lo que gana el puntaje más bajo. La puntuación se calcula como:
+1
por caracteres, para ser contados en caracteres, no en bytes, es decir: ¡s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
contar 20 caracteres, no 52 !-10
para explicacion;+20
para uso de herramienta de fuente externa o biblioteca.
xterm -xrm 'XTerm*renderFont:false' &
para abrir una ventana de consola capaz de mostrar esto correctamente.Respuestas:
GolfScript (90 caracteres)
Mucho de esto va al manejo de matrices irregulares. Caso de prueba desagradable:
contiene 3 cuadrículas 2x2 diferentes con solo una de las 4 celdas que contienen cualquier carácter.
Para empeorar las cosas, la
zip
transposición para cortar las columnas en pares da la misma salida para["xx" "xxx"]zip
y["xxx" "xx"]zip
. Por lo tanto, comienzo rellenando para garantizar que todas las líneas tengan la misma longitud par y que haya un número par de líneas.Tenga en cuenta que este programa asume que el intérprete tratará "▗▖▄▝▐▞▟▘▚▌▙▀▜▛█" como una cadena de longitud 48, aunque según las instrucciones de la pregunta lo cuento como 16 caracteres más delimitadores.
He probado esto lo mejor que he podido, pero no puedo encontrar una fuente monoespacio que realmente represente esos caracteres correctamente.
fuente
zip
en matrices irregulares, y estoy bastante sorprendido por lo que parece hacer, por ejemplo["##" "###"]
. Voy a tener que repensar mi enfoque.Perl 6 , 159 caracteres (192 bytes)
Pruébalo en línea!
fuente
Bash (203 caracteres)
o
fuente
Perl (268 caracteres)
o
fuente