Большинство из нас, фанатов LOST, помнят компьютер, на котором Десмонду приходилось печатать символы «4 8 15 16 23 42» каждые 108 минут, иначе мир закончится (или так?).
Задача здесь состоит в том, чтобы создать программу, которая будет делать то же самое, требуя, чтобы каждые 108 секунд вводился ввод 4 8 15 16 23 42
или он отображал сообщение
Sorry, the world has ended with status code -1
Он должен предупредить пользователя за 100 секунд, что ему нужно ввести номер с сообщением
Enter, Quick!
Программа должна быть в состоянии прочитать входные данные в любое время, и если это правильный вход, она сбросит таймер. Если введен неправильный ввод, ничего не происходит.
Программа должна работать бесконечно. Таким образом, график после последнего действительного ввода выглядит так
От 0 до 99 секунд: нет выходных
В 100 секунд: Enter, Quick!
На 108 секунд: Sorry, the world has ended with status code -1
.
Это кодовый гольф, поэтому выигрывает самый короткий ответ (в байтах), который выполняет эту задачу! Удачи!
источник
Ответы:
Баш, 160 байт
В настоящее время я не уверен, каково ожидаемое поведение после того, как «мир закончился».
Запустите так:
2>&-
требуется игнорировать STDERR, что разрешено по умолчанию .источник
Modern-браузер JavaScript,
252247242 байтаИнструкции: запустите это в консоли пустой вкладки, нажмите на ее документ, чтобы получить фокус и начать многократно вводить строку. Пока у вас все хорошо, вы не получите никакой обратной связи. Обновите и измените 1e5 на 1e4, чтобы сделать вещи более интересными.
источник
Groovy, 244 или 228 байт
Я ошибочно вспомнил, что в Java был метод nextLine, который принимал аргумент того, как долго ждать, поэтому я подумал, что это будет легко. Я не смог найти метод, который это сделал, поэтому я реализовал это с помощью двух потоков. Это немного громоздко. Ну что ж.
Предполагается, что правильное поведение окончания мира - процесс завершается с кодом состояния -1. Если предполагаемое поведение состоит в том, чтобы продолжать цикл и ожидать, что внешняя сила покончит с миром (и, соответственно, с программой), эта
;System.exit(-1)
часть может быть опущена, чтобы сохранить 16 байтов. Ура.Первоначально я написал это, чтобы использовать хэш-код строки, но это оказалось длиннее, чем точное сравнение, встраивающее строку, потому что
hashCode
оно длинное.источник
APL (Dyalog Unicode) , 144 байта SBCS
Как оказалось, обе стороны работают APL ...
Попробуйте онлайн!
:For t:in 100 8
цикл в два раза, один разt
(timput) быть ,100
а затем ,t
как8
::For s:In⍳t
дляs
(econds)1
через и все ɩ ndices , покаt
⎕RTL←1
установите R esponse T ime L imit в 1 (второй){
…}
Применить к этому следующую анонимную лямбду (хотя этот аргумент не используется)1E3::
в следующем случае, если произойдет какое-либо исключение:⍬
возвращение[]
⋄
пытаться:⍕4 8 15 16 23 42
зафиксируйте нужные числа⍞≡
запросить ввод и сравнить с ним (дает 0 или 1)⍳
первое, что многие друзья ([]
или [1] `→
перейти к этой строке (1, если[1]
, продолжить на следующей строке, если[]
):End
конец внутренней петли; перейти к следующей секунде текущего тайм-аутаt=3
это второй тайм-аут (0 или 1)?...
⌽⍨
поверните следующее, что много шагов:'Enter, Quick!' 'Sorry, the world has ended with status code -1'
неявно печатать соответствующий текст⊃
раскрыть (распечатать без начального и конечного пробела):End
конец внешнего цикла: после предупреждения цикл; после печати «Извините…» продолжите работу программыисточник
C ++ (gcc) , 395 байт
Компиляция в Linux требует
-pthread
переключения. МинГВ обходится без.Попробуйте онлайн!
источник