W dowolnym języku programowania utwórz program, który pobiera dane i animuje tekst wpisywany na klawiaturze.
Opóźnienie między każdym znakiem powinno być różne, aby symulować prawdziwe pisanie na klawiaturze. Opóźnienie wynosi 0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...
sekundy, aż do wydrukowania ostatniego znaku. Ostateczne wyjście należy pozostawić na ekranie.
Musisz zastąpić bieżący wiersz tekstu, aby tekst nie był drukowany w nowych wierszach.
Przykład: „Cześć, PPCG! Żegnaj Ziemio!” powinien dać następującą animację (zauważ, że częstotliwość próbkowania gif-maker była niska, więc prawdziwy wynik jest nieco inny):
Ponieważ jest to golf golfowy, wygrywa najmniejsza ilość bajtów.
Odpowiedzi:
C
1089389787380 bajtówWersja bez golfa:
@Kritixi Lithos @Metoniem Dziękujemy za wkład! zapisano niektóre bajty.
W jakiś sposób po prostu
int i
dał mi błąd segmentacji podczas uruchamiania, więc zainicjowałem go wartością 0.źródło
i%3
opóźnienie powinno wynosić 5.100000
się1e5
golić 3 bajty1e5
nie działa na moim urządzeniuGalaretka , 13 bajtów
Jest to monadyczny link / funkcja. Z powodu niejawnego wyniku nie działa on jako pełny program.
Weryfikacja
Jak to działa
źródło
MATLAB, 74 bajty
Wyjaśnienie:
Kiedyś sporo czasu, aby
fprintf
wersja krótsza niżdisp()
zclc
. Przełomem było, gdy odkryłem / zapamiętałem, żepause
można przyjąć wektor jako argument, w którym to przypadku po prostu wybierze pierwszą wartość. Umożliwia to pominięcie licznika.Najkrótszy użyłem
disp
to 81 bajtów:źródło
printf
zamiastfprintf
? Działa na octave-online.net (ale to Octave, a nie Matlab)JavaScript (ES6), 67 bajtów
źródło
Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
V ,
201918 bajtów1 bajt zapisany dzięki @DJMcMayhem
zapisano 1 bajt, usuwając
ò
na końcuOkropnie niemiłe, wiem, to po prostu tak surowe, że
u
nie mogę używać zagnieżdżonych pętli.Wyjaśnienie
Kursor zaczyna się na początku bufora, który jest pierwszym znakiem wejścia.
Gif już wkrótce ...
źródło
gÓ
bez liczby domyślnie 500 ms, więc możesz zapisać tam bajt. Pamiętaj też, że nie potrzebujesz drugiegoò
!u
ndo możesz po prostup
aste? Nie jestem pewien, czy to w ogóle pomagaò
ponieważ w przeciwnym razie program zakończy się wcześniej z powodu niejawnej nowej linii na końcu, powodując błąd przełamania.p
aste, ale niestety przesuwa on kursor na koniec linii i do powrotu potrzebowałbym czegoś takiego,``
co tylko zwiększyłoby moją liczbę bajtówMATL , 16 bajtów
Wypróbuj w MATL Online!
Wyjaśnienie
źródło
Noodel , 18 bajtów
Spróbuj:)
Jak to działa
19-bajtowy fragment kodu, który zapętla się w nieskończoność.
źródło
APL, 23 bajty
Wyjaśnienie:
źródło
C #,
131bajtówNie wiele do wyjaśnienia. Po prostu pobiera ciąg znaków (zawinięty w „”) jako argument i wypisuje każdy znak przy użyciu prawidłowego wzorca opóźnienia. Po animacji kończy się z,
OutOfRangeException
ponieważ pętla nie zatrzymuje się po zapętleniu wszystkich znaków. Ponieważ jest to nieskończona pętla, oznacza to również, że mogę używaćint Main
zamiastvoid Main
;-)Grał w golfa
Nie golfił
Edycje
i
wewnątrzSleep()
metody zamiast wfor
pętli. (Dzięki Maliafo )źródło
Sleep(i++ [...])
aby zapisać dodatkowy bajt w pętli for?SmileBASIC, 61 bajtów
Myślę, że obliczenie opóźnienia może być znacznie krótsze.
źródło
Clojure, 81 bajtów
Pętle nad łańcuchem wejściowym spakowane nieskończoną listą
[100 100 500]
.źródło
Bash (+ narzędzia), 32 bajty
Grał w golfa
Próbny
źródło
Python 3 ,
8375 bajtówWypróbuj online!
źródło
,flush=1
.PowerShell,
666563 bajtów-1 usunęło niepotrzebne białe spacje po
-m
-2 dzięki AdmBorkBork - wykorzystany
1,1,5
i*
końcowy wynik100
zamiast użycia100,100,500
przyjmuje
$args
tablicę char, pętle przechodziWrite-Host
w-N
tryb uśpienia, jak określono, z argumentem oNewline służy do zapisywania znaków w tym samym wierszu.Ulepszenia?
[0..99]
zamiast,[char[]]
aby zapisać 1 bajt, ale nie będzie działać na ciągach ponad 100 znaków.100,500
i[(++$i%3)-gt1]
jednak zrobić to krótsze jakoś.Write-Host
nie mogę znaleźć żadnego sposobu, aby dwa ostatnie działały, a pierwszy nie jest ważny przez żadną konkretną regułę.
źródło
sleep -m((1,1,5)[++$i%3]*100)
Perl, 63 bytes
źródło
Python 3, 88 Bytes
źródło
Rebol, 65 bytes
Ungolfed:
źródło
Bash + coreutils, 57 bytes
źródło
Java 7,
151149 bytes-2 bytes thanks to @KritixiLithos for something I always forget..
Explanation:
Usage:
źródło
a[0].split("")
instead?split
in my Processing answer...Processing,
133131 bytesI tried doing
args[0]
and wrapping the argument in""
instead, but it does not work for some reason.Anyways... this is the first time I've written a Processing program that takes arguments. Unlike Java, you don't need to declare the arguments using
String[]args
, but the variableargs
will automatically be initialised to the arguments.Put it in a file called
sketch_name.pde
under a folder calledsketch_name
(yes, same name for folder and sketch). Call it like:źródło