Quand je vois des entrées de golf de code qui font tomber quelques caractères, réduisant le code, je vais regarder l'historique des modifications pour un diff côte à côte. Voir et apprendre :)
Ce défi est de faire un programme qui produit les plus jolis diffs animés.
- L'entrée sera une série ordonnée de versions de texte.
- Le programme peut être écrit dans n'importe quel langage de programmation.
- Il est autorisé que le programme se limite à entrer des données dans certains langages de programmation spécifiques.
- Le programme ne doit pas être réglé sur les données d'entrée spécifiques; le programme doit être générique et fonctionner pour toute série ordonnée de versions de texte.
- Pour chaque version dans l'entrée, il doit y avoir un temps correspondant dans l'animation de sortie où le texte complet de la version est affiché. Vous devez animer le diff entre les étapes de version, et toutes les étapes de version doivent être présentes et en ordre dans la sortie. Sur ces images clés, la taille de la version doit être affichée et le spectateur doit comprendre qu'il s'agit d'une version complète qu'il voit à ce stade.
- Le programme ne peut utiliser aucun code tiers pour calculer les différences.
- La sortie de mise en évidence de la syntaxe est facultative. Si le programme colore la syntaxe, il ne peut utiliser aucun code tiers pour ce faire.
- La sortie sera un GIF animé.
- Le programme peut utiliser une bibliothèque tierce pour créer le GIF.
- Il s'agit d'un concours de popularité , donc selon la définition du concours de popularité sur ce site, l'entrée avec le plus de votes l'emporte .
Voici un exemple de script simple qui utilise ndiff de Python et le support GIF animé rudimentaire de Pillow et anime chaque étape d'ajout et de suppression:
Personnellement, je pense que c'est un assez mauvais travail. Il ne fait pas de mise en évidence de la syntaxe, il n'essaie pas de déplacer des morceaux de code qui sont réarrangés, il n'a pas l'impression que quelqu'un l'édite en direct, etc. Il casse également les règles concernant l'affichage de la taille de l'entrée en octets sur les images clés, et il utilise une bibliothèque tierce pour faire la différence. Beaucoup de place pour l'amélioration!
Et j'espère que les entrées populaires deviendront également des outils amusants utiles pour la communauté codegolf.stackexchange.com. Il est donc apprécié que les programmes soient faciles à exécuter et à utiliser pour les autres.