Po wejściu do Obfuscated Hello World pomyślałem, że fajnie byłoby dzielić się kodem źródłowym. Ale po prostu pokaż kod, zróbmy z niego golfa!
Wyzwanie
Napisz skrypt, który przewija ciąg znaków przez terminal, od prawej do lewej, osiadając po lewej stronie.
Wejście
Bierze ciąg jako argument.
Wynik
Drukuje przewijaną markizę na STDOUT. Maksymalna szerokość ~ 50 znaków. Zaczyna się od pokazania 0 lub 1 znaków. Odstęp między literami podczas przewijania. Zatrzymuje się po ustaleniu (bez dodatkowego odstępu między znakami słów). Powolne przewijanie, ale niezbyt wolne (<1 s na iterację).
Przykład
Uruchamianie skryptu z arg 'Hello World'
H
później
H e l l o W o
później
H e l l o W o r l d
później
Hell o W o r l d
Wreszcie
Hello World
Na bieżący przykład wypróbuj mój kod z wyzwania „Hello World”. W końcu opublikuję moje. Obecnie w Perlu jest 202 znaków. Teraz, kiedy jest kilku konkurentów, zamieściłem mój w odpowiedziach.
Zwycięzca
Nie chcę, aby ograniczenia były bezwzględne, dlatego zostawiłem je trochę niejasne. Zwycięży najkrótszy scenariusz zgodny z duchem mojego oryginału.
Notatki
Ta gra zakłada xtermśrodowisko. Jeśli inne środowisko okaże się przydatne, zostaną porównane tylko podobne środowiska i dla każdego z nich może zostać ogłoszony osobny zwycięzca.
Dodatek (25 kwietnia 2012 r.)
Aby rozwiązać kilka problemów, podejmuję decyzję. Twoja liczba znaków musi zawierać kod potrzebny do:
- Flush STDOUT (Patrzy na ciebie Ruby)
- Implementuj
sleepz opóźnieniem <1s (Looking at you Perl)
Można tego dokonać, gdy linia poleceń przełącza się na interpreter, ale znaki te są liczone łącznie (bez otaczania białych znaków).
xterm,vt102...?