Étant donné une chaîne d'art ASCII comme celle-ci (ce n'est pas de l'art ASCII mais cela fera pour l'exemple):
abc
d e
fgh
Mélangez-le comme s'il était affiché sur un écran avec un caractère par ligne, comme ceci:
a
b
c
d
e
f
g
h
Imprimez le résultat, attendez une seconde, ± 0,5 seconde avant d'effacer le terminal et imprimez la même chose, mais avec 2 caractères affichés par ligne au lieu de 1. Fondamentalement, la largeur de l'affichage passe de 1 à 2.
ab
c
d
e
fg
h
Notez l'espace après le d
. Répétez l'attente, puis imprimez avec un caractère supplémentaire par ligne jusqu'à ce que le texte saisi soit sorti.
Si vous appuyez sur la fin d'une ligne lorsque vous essayez d'imprimer des caractères, vous insérez une nouvelle ligne et imprimez les autres en suivant cette règle. Par exemple, l'entrée:
abcdefg
ab
Imprime ce qui suit lorsque la longueur d'affichage est de 4.
abcd
efg
ab
Vous pouvez trouver l'effet du redimensionnement du terminal ici: https://repl.it/GoeU/1 . Exécutez le programme, puis faites glisser la chose séparant le terminal de l'éditeur de texte d'avant en arrière.
Clarification:
Une fois qu'une ligne apparaît exactement comme elle a été entrée, vous pouvez laisser cette ligne seule pour les futurs nombres de caractères plus importants par ligne.
abc
ab
devrait imprimer
ab
c
ab
lorsque la durée de la phrase = 2.
Il s'agit de code-golf , donc le moins d'octets gagne!
Règles:
- Doit imprimer sur STDOUT comme seule sortie.
- Doit vider le terminal, ou créer l'illusion de vider le terminal en ajoutant environ 150 lignes vides.
- Peut prendre des informations via les méthodes standard.
- Les failles par défaut s'appliquent.
- Trailer des trucs avec le texte n'est PAS OK.
Cette idée m'est venue lorsque je redimensionnais un terminal avec de l'art ASCII dessus. Cela avait l'air intéressant, alors j'ai décidé d'en faire un défi.
Cas de test:
Comme ce serait trop de travail de montrer chaque étape pour chaque cas de test individuellement, je vais examiner chaque réponse pour m'assurer qu'elle est valide. Assurez-vous que la réponse peut gérer les cas de test.
______ ______ __ __ __ ______ __ __ ______
/\ == \ /\ == \ /\ \ /\ "-.\ \ /\__ _\ /\ "-./ \ /\ ___\
\ \ _-/ \ \ __< \ \ \ \ \ \-. \ \/_/\ \/ \ \ \-./\ \ \ \ __\
\ \_\ \ \_\ \_\ \ \_\ \ \_\\"\_\ \ \_\ \ \_\ \ \_\ \ \_____\
\/_/ \/_/ /_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_/ \/_____/
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
Python 3.5 (
238233229225223222 octets)- Fonctionne bien dans le terminal Windows; pas sûr des autres plates-formes, en raison de la commande os.system ("cls") spécifique au système.
- La chaîne transmise doit être marquée par \ n pour les sauts de ligne, par exemple: 'abc \ nd efgh \ n'
la source
z=print
en haut, puis en changeant toutes les autres instances deprint()
enz()
.print
avecrange
, et au lieu d'range(0,3)
utiliserrange(3)
.sleep(0.5)
peut être réécrit simplementsleep(.5)