Когда я вижу записи кода для игры в гольф, которые сбивают несколько символов, сокращая код, я смотрю историю изменений для сравнения. Смотри и учись :)
Эта задача состоит в том, чтобы создать программу, которая производит самые красивые анимированные различия.
- На входе будет любая упорядоченная серия текстовых версий.
- Программа может быть написана на любом языке программирования.
- Допускается, чтобы программа ограничивалась вводом данных на некоторых конкретных языках программирования.
- Программа не должна быть настроена на конкретные входные данные; Программа должна быть универсальной и работать для любой упорядоченной серии текстовых версий.
- Для каждой версии на входе должно быть соответствующее время в выходной анимации, где отображается полный текст версии. Вы должны анимировать различия между этапами версии, и все этапы версии должны присутствовать и в порядке вывода. На этих ключевых кадрах должен быть показан размер версии, и зритель должен понимать, что это полная версия, которую он видит в тот момент.
- Программа не может использовать какой-либо сторонний код для вычисления различий.
- Вывод подсветки синтаксиса не является обязательным. Если программа окрашивает синтаксис, она может не использовать какой-либо сторонний код для этого.
- На выходе будет анимированный GIF.
- Программа может использовать стороннюю библиотеку для создания GIF.
- Это конкурс популярности , поэтому, согласно определению конкурса популярности на этом сайте, выигрывает участник с наибольшим количеством голосов .
Вот простой пример сценария, который использует поддержку Python ndiff и Pillow, а также анимированную поддержку GIF и анимирует каждый шаг добавления и удаления:
Лично я считаю, что это довольно плохая работа. Он не выполняет подсветку синтаксиса, не пытается перемещать фрагменты кода, которые переставляются, он не чувствует, что кто-то редактирует его вживую и так далее. Он также нарушает правила отображения размера входных данных в байтах на ключевых кадрах и использует стороннюю библиотеку для выполнения сравнения. Много места для улучшения!
И, надеюсь, популярные записи станут полезными инструментами для сообщества codegolf.stackexchange.com. Поэтому важно, чтобы другие программы легко запускали и использовали.