Фон
Ось виклик, пов’язаний з Хеллоуїном.
Як ви могли бачити з мого останнього виклику, мені дуже подобається те, що я називаю художньою анімацією ascii, це не просто малювати візерунок, а малювати шаблон, який прогресує. Ця ідея прийшла до мене після того, як я пару років тому мене попросили оживити (досить нудну) презентацію, змусивши випадкових кажанів Ассії літати по екрану на Хелловін. Потрібно сказати, що я належним чином зобов’язаний (мені платили за це), але це змусило мене думати, що для життя є більше, ніж випадкові кажани. Натхненний цим, я хотів би запропонувати цей виклик.
Виклик
Зробіть летюча миша навколо місяця.
Ось кажан:
^o^
Ось місяць:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Ви повинні показувати кожен етап польоту кажанів (див. Вихід).
Вхідні дані
Немає
Вихідні дані
^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
Правила
- Немає читання із зовнішніх файлів чи веб-сайтів
- Ви можете подати повну програму або функцію
- Зайві додаткові пробіли та / або нові рядки
- Стандартні лазівки заборонені, як зазвичай
- Кажан повинен закінчуватися на вершині місяця
- Будь ласка, сміливо очищайте екран між кадрами, якщо хочете, однак це не є обов'язковою умовою. Вихід, як показано вище, добре
- Оскільки це кодовий гольф, переможцем стане відповідь з найменшим числом байтів, хоча будь-яка відповідь вітається
Зразок
Довідкова реалізація в абсолютно не золотому Python 2 (620 байтів, але просто для того, щоб довести, що це можна зробити. Може гольф пізніше).
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:])
Результат
Хоча @Jonathan, очевидно, перемагає в байтовому рахунку з Jelly, я збираюся позначити відповідь Brainfuck від @Oyarsa як прийняту відповідь чисто тому, що я вважаю, що кожен, хто насправді може зробити щось подібне на такій божевільній мові, заслуговує +15 повторень незалежно від того скільки байтів потрібно. Це не тому, що у мене проблеми з мовами для гольфу. Дивіться мою відповідь на питання щодо цього на мета, якщо у вас є сумніви. Велика подяка та повага всім, хто долучився до будь-якої мови.