Kiedy widzę hasła do gry w golfa, które znokautują kilka znaków, zmniejszając kod, idę do historii edycji w celu porównania różnic. Zobacz i ucz się :)
Wyzwanie polega na stworzeniu programu, który produkuje najładniejsze animowane pliki różnicowe.
- Wprowadzane będą dowolne uporządkowane serie wersji tekstowych.
- Program może być napisany w dowolnym języku programowania.
- Dozwolone jest, aby program sam ograniczał się do wprowadzania danych w niektórych określonych językach programowania.
- Program nie powinien być dostosowany do konkretnych danych wejściowych; program powinien być ogólny i działać dla każdej zamówionej serii wersji tekstowych.
- Dla każdej wersji na wejściu musi być odpowiedni czas w animacji wyjściowej, w której wyświetlany jest pełny tekst wersji. Musisz animować różnicę między etapami wersji, a wszystkie etapy wersji muszą być obecne i uporządkowane w danych wyjściowych. W tych kluczowych klatkach musi być pokazany rozmiar wersji, a widz powinien zrozumieć, że jest to pełna wersja, którą widzą w tym momencie.
- Program nie może używać żadnego kodu strony trzeciej do obliczania różnic.
- Podświetlanie składni jest opcjonalne. Jeśli program ma składnię kolorów, nie może do tego użyć kodu strony trzeciej.
- Rezultatem będzie animowany GIF.
- Program może wykorzystywać bibliotekę strony trzeciej do tworzenia GIF-ów.
- To jest konkurs popularności , więc zgodnie z definicją konkursu popularności na tej stronie wygrywa zgłoszenie z największą liczbą głosów .
Oto prosty przykładowy skrypt, który korzysta z ndiff Pythona i podstawowej obsługi animowanego GIF- a Pillowa i animuje każdy krok dodawania i usuwania:
Osobiście uważam, że to dość kiepska praca. Nie wykonuje podświetlania składni, nie próbuje przenosić fragmentów kodu, które ulegają zmianie, nie wydaje się, że ktoś je edytuje na żywo i tak dalej. Łamie także zasady dotyczące pokazywania wielkości danych wejściowych w bajtach w ramkach kluczowych i korzysta z biblioteki innej firmy do różnicowania. Dużo miejsca na ulepszenia!
Mamy nadzieję, że popularne wpisy staną się przydatnymi zabawnymi narzędziami dla społeczności codegolf.stackexchange.com. Jest to docenione, jeśli programy są łatwe w uruchomieniu dla innych.