Проблема
Вы должны написать программу, которая при вводе кода Konami во время выполнения выводит на экран строку « +30 lives
» и из динамика компьютера выбирает какой-либо шум по вашему выбору.
Определение
«Код Konami» определяется UUDDLRLRBA
нажатием клавиши ввода.
Правила
- Вы можете использовать стрелку вверх для
U
, вниз дляD
, влевоL
и вправоR
, если ваш код соответствует стрелкам или буквам. - Ваш ввод может быть принят от контроллера или клавиатуры, но не должен поддерживать оба.
Существующие ответы могут продолжать использовать
BABA
вместоBA
, но могут также сократить его, если они захотят это сделать. Будущие ответы все должны использоватьBA
для согласованности.Пустой ввод не должен поддерживаться.
Ответы:
05AB1E , 33 байта (Fine на пустом входе)
Попробуйте онлайн!
05AB1E ,
3026 байт ( )-4 спасибо Аднану
Попробуйте онлайн!
Отказ от ответственности: Звук звонка не воспроизводится на TryItOnline, возможно, спросите Денниса, не пингует ли его сервер где-нибудь при запуске.
источник
"+30 lives"
является“+30™‹“
:)JavaScript (ES6),
202200198 байтПроверено только на Chrome и Firefox. Использует
UDLR
вместо клавиш со стрелками. Пожалуйста, убедитесь, что CapsLock выключен.источник
Python 3,
5553 байта-1 байт благодаря isaacg (используйте поразрядно, чтобы не заменять
-10
на~9
).-1 байт благодаря CalculatorFeline (можно использовать буквальный
BEL
байт).где
7
показанное выше является буквенным байтом0x07
(непечатным в блоке кода).После нажатия Enter
while
проверяется состояние цикла. Если последние~9
10 символов (не более) не соответствуют коду команды Contra, то выполняется no-op1
(заменаpass
для краткости); если они делают совпадают , то в то время как замкнйте иprint
выполняются оператор, который записывает необходимый текст вместе с ASCII колокол символом ( «тревога»)0x07
, который производит звук , если он не был явно запрещен (или терминал не имеет динамика !).источник
-10
=~9
, который может сэкономить вам байт.\n
струны в гитаре Python, почему бы их не использовать\x0a
?Желе,
33302927 байтОказывается, append (
ṭ
) не нужен, строки автоматическиобъединяютсяи распечатываются.несжатого
Попробуйте онлайн.
Если вы удалите все после
¿
, вы можете связываться с вводом и видеть, что он возвращается только тогда, когда введенная строка верна.Спасибо @JonathanAllan за помощь в определении сжатия строк :)
источник
“+30 lives”
Сжатие есть“¡}ʠƈ[ỵ»
(для дальнейшего использования здесь есть пост об этом, он связан в учебнике на вики Jelly).7Ọ
за которой следует неявная печать nilad“¡}ʠƈ[ỵ»
, появляющаяся в stdout, как если бы это была конкатенация. В качестве демонстрации вы можете попробовать добавить 2-секундный сон между сɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọ2“+30 lives”œS
.Обработка,
161157155 байтовАудио файл должен быть сохранен как
sketchName/data/a.mp3
. Примечание. Я тестировал эту программу только без аудиофайла, потому что мне лень скачиватьmp3
файл (поскольку из него поддерживаются только ограниченные расширенияprocessing.sound.SoundFile
).draw()
Функция необходима , чтобы быть там для того , чтобыkeyTyped
работать.Причина, по которой мы используем,
keyTyped
заключается в том, что в Processing нет STDIN, он может прослушивать только нажатия клавиш во время запуска эскиза.объяснение
Все нажатия клавиш пользователя хранятся в виде символов в строке
k
. ЭтоkeyTyped
встроенная функция, которая вызывается всякий раз, когда пользователь вводит ключ. Одновременно мы проверяем, заканчивается ли эта строка нажатиями клавиш. Затем мы печатаем+30 lives
и воспроизводим звуковой файл. Иdraw
функция существует для постоянного обновленияkeyTyped
. После ввода кода Konami больше ничего выводиться не будет, и звук не будет воспроизводиться.источник
.mp3
файла на самом деле не имеет значения, поскольку независимо от того, что это такое, обработка будет воспроизводить его как звук> <>,
132696462 байта*> <> , 84 байтаПопробуй это здесь!
Это зависит от звонка колокола (ASCII
7
) для шума в конце (не слышно в онлайн-переводчике).Спасибо @TealPelican за сохранение еще 15 байтов!
Сохранены два байта для проверки
BA
вместоBABA
.источник
C 119 -1 - 2 = 116 байт
Golfed
Ungolfed
источник
s/UUDDLRLR BABA/UUDDLRLRBABA
для -1 байта и strcmp будет искать правильную строку!С накоплением , 41 байт
Читает ввод с клавиатуры.
источник
AutoHotkey, 63 байта
После запуска этого скрипта он проверит, являются ли следующие 10 ключей кодом Konami, и если это так, он покажет окно с сообщением «+30 жизней» и должен подать звуковой сигнал (у меня нет ораторов для тестирования ).
источник
GNU sed,
3225 + 1 =3326 байт+1 байт за
-n
флаг.Попробуйте онлайн!
объяснение
При каждом нажатии клавиши ввода (
$
) программа проверяет, были ли предыдущие 10 нажатий клавиш кодом. Если это так,a
команда ставит в очередь текст+30 Lives
и звук колокольчика (\a
) для печати в конце текущего цикла (что в данном случае происходит немедленно).источник
BA
только один раз.Mathematica, 50 байтов
Первоначально,
x
это просто символ и, следовательно, не совпадает (=!=
) с символомUUDDLRLRBA
, поэтомуx=Input[]
оценивается. Это откроет диалоговое окно с курсором уже в поле ввода, так что пользователь может сразу же начать печатать на клавиатуре.Если
Enter
нажата илиOK
нажата без ввода чего-либо, тоInputField[]
вернетсяNull
, который не идентиченUUDDLRLRBA
, поэтому цикл продолжается, и открывается другое диалоговое окно.Если пользователь щелкнет
Cancel
или иным образом выйдет из диалогового окна, онInputField
вернется$Canceled
, что также не совпадает сUUDDLRLRBA
, поэтому цикл будет продолжен.Пользователь может ввести в диалоговом окне по своему желанию. Когда они нажимают
Enter
, их ввод интерпретируется как выражение языка Wolfram (возможно, просто блоки). Если это выражение отличается от символаUUDDLRLRBA
, цикл будет продолжен.«Зацикливание до тех пор, пока не будет введен код Konami», немного расплывчато, но я считаю, что это удовлетворяет его. После завершения
While
цикла .Beep[]
;"+30 lives"
источник
UUDDLRLRB
? ГдеA
?Petit Computer BASIC, 91 байт
Наконец, решение, которое фактически использует вход контроллера!
Я использовал Petit Computer, а не более новую версию (SmileBASIC), потому что он имеет доступ к кнопке «Пуск» и
BTRIG()
короче, чемBUTTON()
.Я заменил строку данных на
x
's', она должна содержать символы с кодами ascii 1,1,2,2,4,8,4,8,32,16Скучная версия, 46 байт
источник
Powershell,
8986 байтEnter отправляет строку в
Read-Host
, так что это должно .. работать?источник
C # (скучная версия), 80 байт
C # (интересный), 202 байта
Я думаю, что это работает, к сожалению, онлайн-тестеры не поддерживают существование консольного ввода, поэтому мне придется пройти тесты, которые я сделал
Скорее всего, можно играть в гольф - я не очень хорош в этом! :)
Ungolfed:
источник
Console.Readline
но я подумала, что это может быть аганистом духа вызова! Если это хорошо, я могу сделать это намного корочеConsole.ReadLine()
версиюЧудо , 50 байтов
Заменить
•
на символ кода\x07
(контрольный символ BEL). Принимает ввод через STDIN.источник
flex, 37 + 5 = 42 байта
Сам код составляет 37 байтов, скомпилируйте его с опцией "-main", которая добавляет 5 байтов. Естественно, вы должны скомпилировать полученный C-файл с вашим любимым C-компилятором, но я не думаю, что этот шаг должен учитываться при подсчете байтов.
Я мог бы сохранить байт, используя вместо него буквенный символ BEL
\a
, но я бы предпочел прочитать свой собственный код.источник
-ll
компилятору C опцию, а не-main
опцию flex.C
878581 байтисточник
shortC, 52 байта
Объяснение:
Попробуйте онлайн!
источник
C, 114 байтов
источник