На любом языке программирования создайте программу, которая принимает ввод и анимирует текст, набираемый на клавиатуре.
Задержка между каждым символом должна варьироваться, чтобы имитировать истинную печать на клавиатуре. Задержка должна составлять 0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...
секунды, пока не будет напечатан последний символ. Окончательный результат должен быть оставлен на экране.
Вы должны перезаписать текущую строку текста, чтобы текст не печатался в новых строках.
Например, вход «Привет, PPCG! Goodbye Earth!» должен привести к следующей анимации (обратите внимание, что частота дискретизации gif-maker была низкой, поэтому истинный результат немного отличается):
Поскольку это кодовый гольф, выигрывает наименьшее количество байтов.
Ответы:
C
1089389787380 байтБезголовая версия:
@Kritixi Lithos @Metoniem Спасибо за ваш вклад! сохранил несколько байтов.
Так или иначе, только что
int i
дал мне ошибку сегментации при запуске, поэтому я инициализировал ее с 0.источник
i%3
задержка должна быть 5.100000
с1e5
брить 3 байта1e5
не работает на моем устройствеЖеле , 13 байт
Это монадическая ссылка / функция. Из-за неявного вывода, он не работает как полная программа.
верификация
Как это устроено
источник
MATLAB, 74 байта
Объяснение:
Я использовал некоторое время, чтобы сделать
fprintf
версию короче, чемdisp()
сclc
. Прорыв произошел, когда я узнал / вспомнил, чтоpause
может принимать вектор в качестве аргумента, и в этом случае он просто выберет первое значение. Это позволяет опустить счетчик.Самое короткое, что я использовал,
disp
было 81 байт:источник
printf
вместоfprintf
? Это работает на octave-online.net (но это октава, а не Matlab)JavaScript (ES6), 67 байт
источник
Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
V ,
201918 байт1 байт сохранен благодаря @DJMcMayhem
спас 1 байт, удалив
ò
в концеЯ знаю, что это ужасно негольфия, это просто то, что я
u
не могу использовать вложенные циклы.объяснение
Курсор начинается в начале буфера, который является первым символом ввода.
Gif в ближайшее время ...
источник
gÓ
без счетчика по умолчанию 500 мс, так что вы можете сохранить байт там. Кроме того, помните, что вам не нужно второеò
!u
ndo ты можешь простоp
aste? Не уверен, что это поможет, хотяò
потому что в противном случае программа завершается рано из-за неявного перехода на новую строку в конце, вызывающего ошибку прерывания.p
aste, но, увы, он перемещает курсор в конец строки, и чтобы вернуться назад, мне нужно что-то подобное,``
что только увеличит мой счет еще большеMATL , 16 байт
Попробуйте это в MATL Online!
объяснение
источник
Noodel , 18 байт
Попытайся:)
Как это устроено
19-байтовый фрагмент кода, который зацикливается бесконечно.
источник
APL, 23 байта
Объяснение:
источник
C #,
131байтНе так много, чтобы объяснить. Он просто принимает строку (обернутую в "") в качестве аргумента и печатает каждый символ, используя правильный шаблон задержки. После анимации он завершается с
OutOfRangeException
циклом, потому что цикл не останавливается после зацикливания всех символов. Поскольку это бесконечный цикл, это также означает, что я могу использоватьint Main
вместоvoid Main
;-)Golfed
Ungolfed
Правки
i
внутриSleep()
метода, а не вfor
цикле. (Спасибо Малиафо )источник
Sleep(i++ [...])
сохранения дополнительного байта в цикле for?SmileBASIC, 61 байт
Я думаю, что расчет задержки может быть намного короче.
источник
Clojure, 81 байт
Зацикливает входную строку в архиве с бесконечным списком
[100 100 500]
.источник
Bash (+ утилиты), 32 байта
Golfed
демонстрация
источник
Python 3 ,
8375 байтПопробуйте онлайн!
источник
,flush=1
.Powershell,
666563 байт-1 убрал ненужный пробел после
-m
-2 благодаря AdmBorkBork - используется
1,1,5
и*
конечный результат100
вместо использования100,100,500
принимает
$args
массив символов, циклически переходитWrite-Host
в-N
спящий режим, как указано, с аргументом oNewline, используемым для записи символов в одной строке.Улучшения?
[0..99]
вместо того,[char[]]
чтобы сохранить 1 байт, но не будете работать со строками более 100 символов.100,500
и[(++$i%3)-gt1]
но сделать его короче как - то.Write-Host
не могу найти способ заставить последние два работать, и первый не действителен ни по какому конкретному правилу.
источник
sleep -m((1,1,5)[++$i%3]*100)
Perl, 63 байта
источник
Python 3, 88 байт
источник
Ребол, 65 байт
Ungolfed:
источник
Bash + coreutils, 57 байт
источник
Java 7,
151149 байт-2 байта спасибо @KritixiLithos за то, что я всегда забываю ..
Объяснение:
Использование:
источник
a[0].split("")
этого?split
в своем ответе Обработка ...Обработка,
133131 байтЯ пытался сделать
args[0]
и завернуть аргумент в""
Вместо этого , но по какой-то причине он не работает.В любом случае ... это первый раз, когда я написал программу обработки, которая принимает аргументы. В отличие от Java, вам не нужно объявлять аргументы с помощью
String[]args
, но переменнаяargs
автоматически инициализируется аргументами.Поместите его в файл с именем
sketch_name.pde
в папке с именемsketch_name
(да, то же имя для папки и эскиза). Назовите это как:источник