Latar Belakang
Inilah tantangan terkait Halloween.
Seperti yang mungkin telah Anda lihat dari tantangan terakhir saya, saya cukup menyukai apa yang saya sebut sebagai animasi seni ascii, yang tidak hanya menggambar pola tetapi menggambar pola yang berkembang. Ide ini datang kepada saya setelah saya diminta beberapa tahun yang lalu untuk menghidupkan presentasi (agak membosankan) dengan membuat kelelawar ascii acak terbang melintasi layar pada Halloween. Tidak perlu dikatakan bahwa saya wajib (saya dibayar untuk itu) tetapi itu membuat saya berpikir bahwa ada lebih banyak kehidupan daripada kelelawar acak. Terinspirasi oleh ini, saya ingin mengusulkan tantangan ini.
Tantangan
Membuat kelelawar terbang di sekitar bulan.
Inilah kelelawar:
^o^
Inilah bulan:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Anda harus menunjukkan setiap tahap penerbangan kelelawar (lihat output).
Memasukkan
Tidak ada
Keluaran
^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
Aturan
- Tidak membaca dari file eksternal atau situs web
- Anda dapat mengirimkan program atau fungsi lengkap
- Ruang ekstra dan / atau baris baru tidak masalah bagi saya
- Celah standar dilarang seperti biasa
- Kelelawar harus menyelesaikan kembali di atas bulan
- Jangan ragu untuk menghapus layar di antara bingkai jika Anda ingin namun ini bukan persyaratan. Output seperti yang ditunjukkan di atas baik-baik saja
- Karena ini adalah kode golf, pemenang akan menjadi jawaban dengan jumlah byte terendah meskipun ada jawaban
Mencicipi
Implementasi referensi dalam Python 2 yang sama sekali tidak diubah (hanya 620 byte tetapi hanya untuk membuktikan bahwa itu bisa dilakukan. Semoga golf nanti).
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:])
Hasil
Walaupun @Jonathan jelas menang dengan byte byte dengan Jelly, saya akan menandai jawaban Brainfuck dari @Oyarsa sebagai jawaban yang diterima murni karena saya pikir siapa pun yang benar-benar dapat melakukan sesuatu seperti ini dalam bahasa yang gila layak +15 perwakilan tidak peduli berapa banyak byte yang dibutuhkan. Ini bukan karena saya punya masalah dengan bahasa golf. Lihat jawaban saya untuk pertanyaan tentang ini pada meta jika Anda memiliki keraguan. Banyak terima kasih dan penghargaan kepada semua yang berkontribusi dalam bahasa apa pun.