Задний план
Вот вызов, связанный с Хэллоуином.
Как вы, наверное, уже видели из моего последнего испытания, мне очень нравится то, что я называю ascii art animations, это не просто рисование рисунка, но рисование рисунка, который прогрессирует. Эта идея пришла ко мне после того, как пару лет назад меня попросили оживить (довольно скучную) презентацию, заставив случайных летучих мышей летать по экрану в Хэллоуин. Излишне говорить, что я должным образом обязан (мне платили за это), но это заставило меня думать, что в жизни есть нечто большее, чем случайные летучие мыши. Вдохновленный этим, я хотел бы предложить этот вызов.
Вызов
Заставь летать летучую мышь вокруг Луны
Вот летучая мышь:
^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 повторений, независимо от того, сколько байт требуется. Это не потому, что у меня есть проблемы с языками игры в гольф. Смотрите мой ответ на вопрос по этому вопросу на мета, если у вас есть какие-либо сомнения. Большое спасибо и уважение всем, кто внес вклад на любом языке.