Quando vejo entradas de código de golfe que eliminam alguns caracteres, diminuindo o código, vou olhar para o histórico de edições para obter uma comparação lado a lado. Veja e aprenda :)
Esse desafio é criar um programa que produza as diferenças animadas mais bonitas.
- A entrada será qualquer série ordenada de versões de texto.
- O programa pode ser escrito em qualquer linguagem de programação.
- É permitido que o programa se limite a inserir dados em algumas linguagens de programação específicas.
- O programa não deve ser ajustado para os dados de entrada específicos; o programa deve ser genérico e funcionar para qualquer série ordenada de versões de texto.
- Para cada versão da entrada, deve haver um tempo correspondente na animação de saída em que o texto completo da versão é exibido. Você deve animar o diff entre os estágios da versão, e todos os estágios da versão devem estar presentes e em ordem na saída. Nesses quadros-chave, o tamanho da versão deve ser mostrado e o visualizador deve entender que esta é uma versão completa que eles estão vendo naquele momento.
- O programa não pode usar nenhum código de terceiros para calcular as diferenças.
- A saída de destaque da sintaxe é opcional. Se o programa colorir a sintaxe, ele não poderá usar nenhum código de terceiros para fazer isso.
- A saída será um GIF animado.
- O programa pode usar uma biblioteca de terceiros para criar o GIF.
- Este é um concurso de popularidade , de acordo com a definição de concurso de popularidade deste site, a participação com mais votos vence .
Aqui está um exemplo de script simples que usa o ndiff do Python e o suporte rudimentar de GIF animado do Pillow e anima cada etapa de adição e remoção:
Pessoalmente, acho que esse é um trabalho muito ruim. Ele não realça a sintaxe, não tenta mover blocos de código que são reorganizados, não parece que alguém está editando ao vivo e assim por diante. Ele também quebra as regras relativas à exibição do tamanho da entrada em bytes nos quadros-chave e usa uma biblioteca de terceiros para fazer a diferença. Muito espaço para melhorias!
E espero que as entradas populares também se tornem ferramentas divertidas úteis para a comunidade codegolf.stackexchange.com. Portanto, é apreciado se os programas são fáceis de executar e usar.