Dada uma sequência de arte ASCII como essa (isso não é arte ASCII, mas servirá como exemplo):
abc
d e
fgh
Misture como se estivesse sendo exibido em uma tela com um caractere por linha, da seguinte maneira:
a
b
c
d
e
f
g
h
Imprima o resultado, aguarde um segundo, ± 0,5 segundos antes de limpar o terminal e imprima a mesma coisa, mas com 2 caracteres exibidos por linha em vez de 1. Basicamente, a largura da tela muda de 1 para 2.
ab
c
d
e
fg
h
Observe o espaço após o d
. Repita a espera e depois imprima com um caractere adicional por linha até que o texto inserido seja produzido.
Se você atingir o final de uma linha ao tentar imprimir caracteres, insira uma nova linha e imprime o restante seguindo esta regra. Por exemplo, a entrada:
abcdefg
ab
Imprimia o seguinte quando o comprimento da tela é 4.
abcd
efg
ab
Você pode encontrar o efeito do redimensionamento do terminal aqui: https://repl.it/GoeU/1 . Execute o programa e arraste a coisa que separa o terminal do editor de texto para frente e para trás.
Esclarecimento:
Quando uma linha aparecer exatamente como foi inserida, você poderá deixá-la em paz para futuras contagens maiores de caracteres por linha.
abc
ab
deve imprimir
ab
c
ab
quando o comprimento da sentença = 2.
Este é o código-golfe , pelo que ganha menos quantidade de bytes!
Regras:
- É necessário imprimir em STDOUT como a única saída.
- É necessário limpar o terminal ou criar a ilusão de limpar o terminal adicionando 150 linhas vazias.
- Pode receber informações através dos métodos padrão.
- Aplicam-se brechas padrão.
- Trailing material com o texto não está bem.
Essa ideia me ocorreu quando eu estava redimensionando um terminal com arte ASCII. Parecia interessante, então decidi fazer disso um desafio.
Casos de teste:
Como seria muito difícil mostrar cada etapa de cada caso de teste individualmente, revisarei cada resposta para garantir que seja válida. Verifique se a resposta pode lidar com os casos de teste.
______ ______ __ __ __ ______ __ __ ______
/\ == \ /\ == \ /\ \ /\ "-.\ \ /\__ _\ /\ "-./ \ /\ ___\
\ \ _-/ \ \ __< \ \ \ \ \ \-. \ \/_/\ \/ \ \ \-./\ \ \ \ __\
\ \_\ \ \_\ \_\ \ \_\ \ \_\\"\_\ \ \_\ \ \_\ \ \_\ \ \_____\
\/_/ \/_/ /_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_____/
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Python 3.5 (
238233229225223222 bytes)- Funciona bem no terminal do Windows; não tenho certeza sobre outras plataformas, devido ao comando os.system ("cls") específico do sistema.
- A cadeia passada deve ser marcada por \ n para novas linhas, por exemplo: 'abc \ nd efgh \ n'
fonte
z=print
na parte superior e alterando todas as outras instâncias deprint()
paraz()
.print
comrange
, e em vez derange(0,3)
usorange(3)
.sleep(0.5)
pode ser reescrita como meramentesleep(.5)