Hintergrund
Hier ist eine Halloween-bezogene Herausforderung.
Wie Sie vielleicht aus meiner letzten Herausforderung gesehen haben, gefällt mir das, was ich als ASCII-Kunstanimationen bezeichne, sehr gut, nämlich nicht nur ein Muster zu zeichnen, sondern ein fortschreitendes Muster zu zeichnen. Diese Idee kam mir, als ich vor ein paar Jahren gebeten wurde, eine (ziemlich langweilige) Präsentation zu beleben, indem ich an Halloween zufällige Ascii-Fledermäuse über den Bildschirm fliegen ließ. Unnötig zu sagen, dass ich gebührend verpflichtet war (ich wurde dafür bezahlt), aber es brachte mich auf den Gedanken, dass das Leben mehr beinhaltet als zufällige Fledermäuse. Davon inspiriert möchte ich diese Herausforderung vorschlagen.
Herausforderung
Lass eine Fledermaus um den Mond fliegen.
Hier ist eine Fledermaus:
^o^
Hier ist der Mond:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Sie müssen jede Phase des Fledermausflugs anzeigen (siehe Ausgabe).
Eingang
Keiner
Ausgabe
^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
Regeln
- Kein Lesen von externen Dateien oder Websites
- Sie können ein vollständiges Programm oder eine Funktion einreichen
- Zusätzliche Leerzeichen und / oder Zeilenumbrüche sind von mir in Ordnung
- Standard-Schlupflöcher wie gewohnt verboten
- Die Fledermaus muss oben auf dem Mond enden
- Wenn Sie möchten, können Sie den Bildschirm zwischen den Frames löschen, dies ist jedoch keine Voraussetzung. Die oben gezeigte Ausgabe ist in Ordnung
- Da dies Codegolf ist, ist der Gewinner die Antwort mit der niedrigsten Byteanzahl, obwohl jede Antwort erwünscht ist
Probe
Referenzimplementierung in völlig ungolfed Python 2 (620 Bytes, aber nur um zu beweisen, dass es möglich ist. Kann es später Golf spielen).
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:])
Ergebnis
Obwohl @Jonathan offensichtlich bei der Anzahl der Bytes mit Jelly gewinnt, werde ich die Brainfuck-Antwort von @Oyarsa als akzeptierte Antwort markieren, nur weil ich denke, dass jeder, der so etwas in einer so verrückten Sprache tatsächlich kann, +15 Wiederholungen verdient, egal wie viele Bytes es braucht. Das liegt nicht daran, dass ich Probleme mit Golfsprachen habe. Wenn Sie irgendwelche Zweifel haben, lesen Sie meine Antwort auf eine diesbezügliche Frage auf meta . Vielen Dank und Respekt an alle, die in welcher Sprache auch immer beigetragen haben.