Wenn ich Code-Golf-Einträge sehe, die ein paar Zeichen wegwerfen und den Code einschränken, schaue ich im Bearbeitungsverlauf nach einem Side-by-Side-Diff. Sehen und lernen :)
Diese Herausforderung besteht darin, ein Programm zu erstellen, das die schönsten animierten Unterschiede erzeugt.
- Die Eingabe erfolgt in einer beliebigen Reihenfolge von Textversionen.
- Das Programm kann in einer beliebigen Programmiersprache geschrieben sein.
- Es ist zulässig, dass sich das Programm auf die Eingabe von Daten in bestimmten Programmiersprachen beschränkt.
- Das Programm sollte nicht auf die spezifischen Eingabedaten abgestimmt werden. Das Programm sollte generisch sein und für alle bestellten Serien von Textversionen funktionieren.
- Für jede Version in der Eingabe muss in der Ausgabeanimation eine entsprechende Zeit angegeben werden, in der der vollständige Text der Version angezeigt wird. Sie müssen den Unterschied zwischen den Versionsstufen animieren, und alle Versionsstufen müssen in der Ausgabe vorhanden und in der richtigen Reihenfolge sein. Auf diesen Keyframes muss die Versionsgröße angezeigt werden, und der Betrachter sollte verstehen, dass es sich um eine vollständige Version handelt, die zu diesem Zeitpunkt angezeigt wird.
- Das Programm verwendet möglicherweise keinen Code von Drittanbietern, um die Unterschiede zu berechnen.
- Die Ausgabe der Syntaxhervorhebung ist optional. Wenn die Syntax des Programms Farben enthält, wird möglicherweise kein Code von Drittanbietern verwendet.
- Die Ausgabe wird ein animiertes GIF sein.
- Das Programm verwendet möglicherweise eine Drittanbieter-Bibliothek, um das GIF zu erstellen.
- Dies ist ein Beliebtheitswettbewerb , so dass gemäß der Definition des Beliebtheitswettbewerbs auf dieser Website der Eintrag mit den meisten Stimmen gewinnt .
Hier ist ein einfaches Beispielskript , das die rudimentäre animierte GIF-Unterstützung von Pythons ndiff und Pillow verwendet und die einzelnen Schritte zum Hinzufügen und Entfernen animiert:
Persönlich halte ich das für einen ziemlich schlechten Job. Es führt keine Syntaxhervorhebung durch, versucht nicht, Code-Chunks zu verschieben, die neu angeordnet werden, und es fühlt sich nicht so an, als würde jemand sie live bearbeiten und so weiter. Es verstößt auch gegen die Regeln bezüglich der Anzeige der Größe der Eingabe in Bytes in Schlüsselbildern und verwendet eine Bibliothek eines Drittanbieters, um das Vergleichen durchzuführen. Viel Raum für Verbesserungen!
Und hoffentlich werden die beliebten Einträge auch für die codegolf.stackexchange.com-Community zu nützlichen Tools. Es wird daher geschätzt, wenn die Programme für andere leicht zum Laufen zu bringen und zu verwenden sind.