Esse desafio é uma pasta recortada da arte Ampliar ASCII , mas revertida , usando caracteres de meio bloco baseados em PetSCII :
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Portanto, o objetivo é reduzir com ascii-art1/2
submetido . Por exemplo, da string:
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
você precisa renderizar:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(ou até:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-)
ou onde a tubulação:
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
]])})
poderia dar:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Algumas amostras:
Com (aproximadamente) as mesmas regras:
- Entrada de STDIN ou arquivo
- Cada caractere enviado deve ser representado, apenas os espaços em branco precisam permanecer vazios .
- Isso também é código-golfe , então a menor pontuação ganha. A pontuação é calculada como:
+1
por caracteres, para ser contado em caracteres, não em bytes, ou seja:s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
contar 20 caracteres, não 52 !!-10
para explicação;+20
para uso de ferramenta ou biblioteca de fontes externas.
xterm -xrm 'XTerm*renderFont:false' &
para abrir uma janela do console capaz de exibir isso corretamente.Respostas:
GolfScript (90 caracteres)
Muito disso vai para o tratamento de matrizes irregulares. Caso de teste desagradável:
contém três grades 2x2 diferentes, com apenas uma das 4 células contendo qualquer caractere.
Para piorar as coisas, a
zip
transposição para cortar as colunas em pares fornece a mesma saída para["xx" "xxx"]zip
e["xxx" "xx"]zip
. Portanto, começo preenchendo para garantir que todas as linhas tenham o mesmo comprimento par e que haja um número par de linhas.Observe que este programa assume que o intérprete tratará "▗▖▄▝▐▞▟▘▚▌▙▀▜▛█" como uma sequência de comprimento 48, mesmo que, de acordo com as instruções da pergunta, eu esteja contando como 16 caracteres mais delimitadores.
Eu testei isso da melhor maneira possível, mas não consigo encontrar uma fonte monoespaçada que realmente renderize esses caracteres corretamente.
fonte
zip
em matrizes irregulares e estou bastante surpreso com o que parece fazer, por exemplo["##" "###"]
. Vou ter que repensar minha abordagem.Perl 6 , 159 caracteres (192 bytes)
Experimente online!
fonte
Bash (203 caracteres)
ou
fonte
Perl (268 caracteres)
ou
fonte