tło
Oto wyzwanie związane z Halloween.
Jak mogłeś zobaczyć z mojego ostatniego wyzwania , podoba mi się to, co nazywam animacjami sztuki ascii, to nie tylko narysowanie wzoru, ale narysowanie wzoru, który postępuje. Ten pomysł przyszedł mi do głowy po tym, jak kilka lat temu zostałem poproszony o ożywienie (raczej nudnej) prezentacji, sprawiając, że przypadkowe nietoperze ascii latały po ekranie w Halloween. Nie trzeba dodawać, że należycie się zobowiązałem (płacono mi za to), ale sprawiło, że pomyślałem, że w życiu jest coś więcej niż przypadkowe nietoperze. Zainspirowany tym chciałbym zaproponować to wyzwanie.
Wyzwanie
Spraw, aby nietoperz latał wokół Księżyca.
Oto nietoperz:
^o^
Oto księżyc:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Musisz pokazać każdy etap lotu nietoperzy (patrz dane wyjściowe).
Wkład
Żaden
Wydajność
^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
Zasady
- Brak odczytu z zewnętrznych plików lub stron internetowych
- Możesz przesłać pełny program lub funkcję
- Dodatkowe spacje i / lub znaki nowej linii są dla mnie w porządku
- Standardowe luki zakazane jak zwykle
- Nietoperz musi skończyć z powrotem na szczycie księżyca
- Jeśli chcesz, możesz wyczyścić ekran między ramkami, ale nie jest to wymagane. Wyjście, jak pokazano powyżej, jest w porządku
- Ponieważ jest to kod golfowy, zwycięzca otrzyma odpowiedź o najniższej liczbie bajtów, chociaż jakakolwiek odpowiedź jest mile widziana
Próba
Odwołaj się do implementacji w całkowicie nie golfowym Pythonie 2 (620 bajtów, ale tylko po to, aby udowodnić, że da się to zrobić. Może później zagrać w golfa).
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:])
Wynik
Chociaż @Jonathan oczywiście wygrywa pod względem liczby bajtów z Jelly, oznaczę odpowiedź Brainfuck z @Oyarsa jako odpowiedź zaakceptowaną wyłącznie dlatego, że uważam, że każdy, kto może zrobić coś takiego w tak szalonym języku, zasługuje na +15 powtórzeń, bez względu na to ile bajtów to zajmuje. Nie dlatego, że mam problem z językami golfa. Jeśli masz jakiekolwiek wątpliwości, zobacz moją odpowiedź na pytanie dotyczące tego meta . Wielkie dzięki i szacunek dla wszystkich, którzy przyczynili się w jakimkolwiek języku.