sfondo
Ecco una sfida legata ad Halloween.
Come avrai visto dalla mia ultima sfida, mi piace molto quello che definisco animazioni di arte ASCII, che non è solo disegnare uno schema ma disegnare uno schema che progredisce. Questa idea mi è venuta dopo che un paio di anni fa mi è stato chiesto di ravvivare una presentazione (piuttosto noiosa) facendo volare pipistrelli ascii casuali sullo schermo ad Halloween. Inutile dire che ero debitamente obbligato (ero pagato per questo), ma mi ha fatto pensare che nella vita ci sia qualcosa di più dei pipistrelli casuali. Ispirato da questo, vorrei proporre questa sfida.
Sfida
Fai volare una mazza intorno alla luna.
Ecco una mazza:
^o^
Ecco la luna:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Devi mostrare tutte le fasi del volo dei pipistrelli (vedi l'output).
Ingresso
Nessuna
Produzione
^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
Regole
- Nessuna lettura da file o siti Web esterni
- È possibile inviare un programma completo o una funzione
- Spazi extra e / o newline vanno bene per me
- Scappatoie standard vietate come al solito
- La mazza deve finire di nuovo in cima alla luna
- Sentiti libero di cancellare lo schermo tra i frame se lo desideri, tuttavia questo non è un requisito. L'output come mostrato sopra va bene
- Dato che si tratta di code golf, il vincitore sarà la risposta con il numero di byte più basso, sebbene ogni risposta sia benvenuta
Campione
Implementazione di riferimento in Python 2 totalmente non golfato (620 byte, ma solo per dimostrare che può essere fatto. Può giocare a golf in un secondo momento).
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:])
Risultato
Anche se @Jonathan ovviamente vince sul conteggio dei byte con Jelly, segnerò la risposta Brainfuck di @Oyarsa come risposta accettata puramente perché penso che chiunque possa effettivamente fare qualcosa del genere in un linguaggio così folle merita +15 rep non importa quanti byte ci vogliono. Questo non è perché ho qualche problema con le lingue del golf. Vedi la mia risposta a una domanda a riguardo su meta se hai dei dubbi. Mille grazie e rispetto a tutti coloro che hanno contribuito in qualunque lingua.