Contexte
Voici un défi lié à Halloween.
Comme vous avez pu le constater lors de mon dernier défi, j'aime beaucoup ce que j'appelle des animations artistiques ascii. Il ne s'agit pas simplement de dessiner un motif, mais de dessiner un motif qui progresse. Cette idée m'est venue après qu'on m'a demandé, il y a quelques années, d'agrémenter une présentation (plutôt ennuyeuse) en faisant voler des chauves-souris ascii au hasard sur l'écran à l'Halloween. Inutile de dire que je suis obligé (on me payait pour cela) mais cela me faisait penser qu'il y a plus dans la vie que des chauves-souris aléatoires. Inspiré par cela, je voudrais proposer ce défi.
Défi
Faites voler une chauve-souris autour de la lune.
Voici une batte:
^o^
Voici la lune:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Vous devez montrer chaque étape du vol des chauves-souris (voir le résultat).
Contribution
Aucun
Sortie
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
mmm^o^
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
mmm
mmmmmmm^o^
mmmmmmmmm
mmmmmmm
mmm
mmm
mmmmmmm
mmmmmmmmm^o^
mmmmmmm
mmm
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm^o^
mmm
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
^o^mmm
mmm
mmmmmmm
mmmmmmmmm
^o^mmmmmmm
mmm
mmm
mmmmmmm
^o^mmmmmmmmm
mmmmmmm
mmm
mmm
^o^mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Règles
- Pas de lecture de fichiers externes ou de sites Web
- Vous pouvez soumettre un programme complet ou une fonction
- Les espaces supplémentaires et / ou les nouvelles lignes me conviennent
- Lacunes standard interdites comme d'habitude
- La chauve-souris doit finir au sommet de la lune
- N'hésitez pas à vider l'écran entre les images si vous le souhaitez, mais ceci n'est pas obligatoire. Comme indiqué ci-dessus, la sortie est bonne
- S'agissant d'un code de golf, le gagnant sera la réponse avec le nombre d'octets le plus faible, bien que toute réponse soit la bienvenue.
Échantillon
Implémentation de référence en Python 2 totalement non-golfé (620 octets mais juste pour prouver que cela est possible. Pourrons le jouer plus tard).
b='^o^'
m=[' ',
' mmm ',
' mmmmmmm ',
' mmmmmmmmm ',
' mmmmmmm ',
' mmm ',
' ']
p=[(9,12),(12,15),(14,17),(15,18),(14,17),(12,15),(9,12),(6,9),(4,7),(3,6),(4,7),(6,9),(9,12)]
d=0
for z in range(7):
x=map(str,m[z])
c="".join(x[:p[z][0]]) + b + "".join(x[p[z][1]:])+"\n"
print "\n".join(m[:z]) + "\n" + c+"\n".join(m[z+1:])
for z in range(6)[::-1]:
x=map(str,m[z])
c="".join(x[:p[z+6][0]]) + b + "".join(x[p[z+6][1]:])+"\n"
print "\n".join(m[:z]) + "\n" + c+"\n".join(m[z+1:])
Résultat
Bien que @Jonathan gagne évidemment sur le nombre d'octets avec Jelly, je vais marquer la réponse Brainfuck de @Oyarsa comme la réponse acceptée, tout simplement parce que je pense que quiconque peut réellement faire quelque chose comme cela dans un langage aussi fou mérite +15 représentants peu importe combien d'octets cela prend. Ce n'est pas parce que j'ai aucun problème avec les langues de golf. Voir ma réponse à une question à ce sujet sur la méta si vous avez des doutes. Merci beaucoup et respect à tous ceux qui ont contribué dans n'importe quelle langue.